|
Integer
|
class Integer
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "Integer",
"nodes": [
Variable {
"constant": true,
"id": Identifier { "name": "Integer" },
"value": PstClass {
"id": Identifier { "name": "Integer" },
"constant": true
}
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Variable {
"constant": true,
"id": Identifier { "name": "Integer" },
"value": PstClass {
"id": Identifier { "name": "Integer" },
"constant": true
}
}
]
|
name nodes [
Variable {
"constant": true,
"id": Identifier { "name": "Integer" },
"value": PstClass {
"id": Identifier { "name": "Integer" },
"constant": true
}
}
]
|
name nodes 0 constant id Identifier { "name": "Integer" }value constant id Identifier { "name": "Integer" }
|
name nodes [
Variable {
"constant": true,
"id": Identifier { "name": "Integer" },
"value": Class { "id": Identifier { "name": "Integer" } ; } }
]
|
name nodes [
Variable {
"constant": true,
"id": Identifier { "name": "Integer" },
"value": Class { "id": Identifier { "name": "Integer" } ; } }
]
|
name nodes [
Variable {
"constant": true,
"id": Identifier { "name": "Integer" },
"value": Class { "id": Identifier { "name": "Integer" } ; } }
]
|
name nodes [
Variable {
"constant": true,
"id": Identifier { "name": "Integer" },
"value": Class { "id": Identifier { "name": "Integer" } ; } }
]
|
resolveExternalReferences
name nodes [
Variable {
"constant": true,
"id": Identifier { "name": "Integer" },
"value": Class { "id": Identifier { "name": "Integer" } ; } }
]
|
name nodes [
Variable {
"constant": true,
"id": Identifier { "name": "Integer" },
"value": Class { "id": Identifier { "name": "Integer" } ; } }
]
|
name nodes [
Variable {
"constant": true,
"id": Identifier { "name": "Integer" },
"value": Class { "id": Identifier { "name": "Integer" } ; } }
]
|
name nodes 0 constant id Identifier { "name": ; "Integer" }resolved type FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Integer" }
}value id Identifier { "name": ; "Integer" }resolved type FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Integer" }
}
resolved type
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Integer" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "Integer" },
"value": Class {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Integer" }
},
"resolved": true,
"id": Identifier { "name": "Integer" } ; } }
]resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Integer" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "Integer" },
"value": Class {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Integer" }
},
"resolved": true,
"id": Identifier { "name": "Integer" } ; } }
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Integer" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "Integer" },
"value": Class {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Integer" }
},
"resolved": true,
"id": Identifier { "name": "Integer" } ; } }
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
Float
|
class Float
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "Float",
"nodes": [
Variable { "constant": true, ; "id": Identifier { "name": "Float" },
"value": PstClass {
"id": Identifier { "name": "Float" },
"constant": true
}
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Float" },
"value": PstClass {
"id": Identifier { "name": "Float" },
"constant": true
}
}
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Float" },
"value": PstClass {
"id": Identifier { "name": "Float" },
"constant": true
}
}
]
|
name nodes 0 constant id Identifier { "name": "Float" }value constant id Identifier { "name": "Float" }
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Float" },
"value": Class { "id": Identifier { "name": "Float" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Float" },
"value": Class { "id": Identifier { "name": "Float" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Float" },
"value": Class { "id": Identifier { "name": "Float" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Float" },
"value": Class { "id": Identifier { "name": "Float" } ; } }
]
|
resolveExternalReferences
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Float" },
"value": Class { "id": Identifier { "name": "Float" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Float" },
"value": Class { "id": Identifier { "name": "Float" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Float" },
"value": Class { "id": Identifier { "name": "Float" } ; } }
]
|
name nodes 0 constant id Identifier { "name": ; "Float" }resolved type FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Float" }
}value id Identifier { "name": ; "Float" }resolved type FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Float" }
}
resolved type
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Float" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "Float" },
"value": Class {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Float" }
},
"resolved": true,
"id": Identifier { "name": "Float" } ; } }
]resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Float" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "Float" },
"value": Class {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Float" }
},
"resolved": true,
"id": Identifier { "name": "Float" } ; } }
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Float" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "Float" },
"value": Class {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Float" }
},
"resolved": true,
"id": Identifier { "name": "Float" } ; } }
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
Boolean
|
Boolean = 0 .. 1
|
[
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": ".." },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "1" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": ".." },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "1" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "Boolean",
"nodes": [
BinaryExpression { "left": Identifier { "name": ; "Boolean" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": NumberLiteral { "integer": true, ; "value": 0 },
"operator": Token { "type": "Operator", ; "source": ".." },
"right": NumberLiteral { "integer": true, ; "value": 1 }
}
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
BinaryExpression { "left": Identifier { "name": ; "Boolean" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": NumberLiteral { "integer": true, ; "value": 0 },
"operator": Token { "type": "Operator", ; "source": ".." },
"right": NumberLiteral { "integer": true, ; "value": 1 }
}
}
]
|
name nodes 0 left Identifier { "name": ; "Boolean" }operator Token { "type": "Operator", ; "source": "=" }right integer left NumberLiteral { "integer": true, ; "value": 0 }max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 0 }operator Token { "type": "Operator", ; "source": ".." }right NumberLiteral { "integer": true, ; "value": 1 }
|
name nodes 0 constant id Identifier { "name": "Boolean" }left Identifier { "name": "Boolean" }operator Token { "type": "Operator", ; "source": "=" }right NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}value NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
|
name nodes [
Variable { "id": Identifier { "name": ; "Boolean" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "Boolean" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "Boolean" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "Boolean" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"constant": true
}
]
|
resolveExternalReferences
dependencies name nodes [
Variable { "id": Identifier { "name": ; "Boolean" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"constant": true
}
]
|
dependencies name nodes [
Variable { "id": Identifier { "name": ; "Boolean" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "Boolean" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": ; "Boolean" }resolved type TypeReference { "resolved": true, ; "name": "@Type" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 0 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type
|
name nodes [
Variable {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"id": Identifier { "name": ; "Boolean" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"constant": true
}
]resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"id": Identifier { "name": ; "Boolean" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"id": Identifier { "name": ; "Boolean" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
String
|
class String
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "String" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "String" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "String",
"nodes": [
Variable { "constant": true, ; "id": Identifier { "name": "String" },
"value": PstClass {
"id": Identifier { "name": "String" },
"constant": true
}
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "String" },
"value": PstClass {
"id": Identifier { "name": "String" },
"constant": true
}
}
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "String" },
"value": PstClass {
"id": Identifier { "name": "String" },
"constant": true
}
}
]
|
name nodes 0 constant id Identifier { "name": "String" }value constant id Identifier { "name": "String" }
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "String" },
"value": Class { "id": Identifier { "name": "String" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "String" },
"value": Class { "id": Identifier { "name": "String" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "String" },
"value": Class { "id": Identifier { "name": "String" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "String" },
"value": Class { "id": Identifier { "name": "String" } ; } }
]
|
resolveExternalReferences
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "String" },
"value": Class { "id": Identifier { "name": "String" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "String" },
"value": Class { "id": Identifier { "name": "String" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "String" },
"value": Class { "id": Identifier { "name": "String" } ; } }
]
|
name nodes 0 constant id Identifier { "name": ; "String" }resolved type FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
}value id Identifier { "name": ; "String" }resolved type FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
}
resolved type
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "String" },
"value": Class {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"id": Identifier { "name": "String" } ; } }
]resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "String" },
"value": Class {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"id": Identifier { "name": "String" } ; } }
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "String" },
"value": Class {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"id": Identifier { "name": "String" } ; } }
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
@Native
|
class @Native
javascript: String
|
" class @Native javascript: String " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Indent", ; "source": " " },
Token { "type": "Id", ; "source": "javascript" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "String" },
Token { "type": ; "Outdent" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Indent", ; "source": " " },
Token { "type": "Id", ; "source": "javascript" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "String" },
Token { "type": ; "Outdent" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "@Native",
"nodes": [
Variable {
"constant": true,
"id": Identifier { "name": "@Native" },
"value": PstClass { "id": Identifier { "name": ; "@Native" },
"constant": true,
"nodes": [
BinaryExpression { "left": Identifier { "name": ; "javascript" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "String" } ; }
]
}
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Variable {
"constant": true,
"id": Identifier { "name": "@Native" },
"value": PstClass { "id": Identifier { "name": ; "@Native" },
"constant": true,
"nodes": [
BinaryExpression { "left": Identifier { "name": ; "javascript" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "String" } ; }
]
}
}
]
|
name nodes [
Variable {
"constant": true,
"id": Identifier { "name": "@Native" },
"value": PstClass { "id": Identifier { "name": ; "@Native" },
"constant": true,
"nodes": [
BinaryExpression { "left": Identifier { "name": ; "javascript" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "String" } ; }
]
}
}
]
|
name nodes 0 constant id Identifier { "name": "@Native" }value constant id Identifier { "name": "@Native" }nodes 0 id Identifier { "name": "javascript" }left Identifier { "name": "javascript" }operator Token { "type": "Operator", ; "source": ":" }right Identifier { "name": "String" }type TypeReference { "name": "String" }
|
name nodes [
Variable {
"constant": true,
"id": Identifier { "name": "@Native" },
"value": Class { "id": Identifier { "name": ; "@Native" },
"nodes": [
Variable {
"type": TypeReference { "name": "String" },
"id": Identifier { "name": "javascript" }
}
]
}
}
]
|
name nodes [
Variable {
"constant": true,
"id": Identifier { "name": "@Native" },
"value": Class { "id": Identifier { "name": ; "@Native" },
"nodes": [
Variable {
"type": TypeReference { "name": "String" },
"id": Identifier { "name": "javascript" }
}
]
}
}
]
|
name nodes [
Variable {
"constant": true,
"id": Identifier { "name": "@Native" },
"value": Class { "id": Identifier { "name": ; "@Native" },
"nodes": [
Variable {
"type": TypeReference { "name": "String" },
"id": Identifier { "name": "javascript" }
}
]
}
}
]
|
name nodes [
Variable {
"constant": true,
"id": Identifier { "name": "@Native" },
"value": Class { "id": Identifier { "name": ; "@Native" },
"nodes": [
Variable {
"type": TypeReference { "name": "String" },
"id": Identifier { "name": "javascript" }
}
]
}
}
]
|
resolveExternalReferences
dependencies name nodes [
Variable {
"constant": true,
"id": Identifier { "name": "@Native" },
"value": Class { "id": Identifier { "name": ; "@Native" },
"nodes": [
Variable {
"type": TypeReference { "name": "String" },
"id": Identifier { "name": "javascript" }
}
]
}
}
]
|
dependencies name nodes [
Variable {
"constant": true,
"id": Identifier { "name": "@Native" },
"value": Class { "id": Identifier { "name": ; "@Native" },
"nodes": [
Variable {
"type": TypeReference { "name": "String" },
"id": Identifier { "name": "javascript" }
}
]
}
}
]
|
name nodes [
Variable {
"constant": true,
"id": Identifier { "name": "@Native" },
"value": Class { "id": Identifier { "name": ; "@Native" },
"nodes": [
Variable {
"type": TypeReference { "name": "String" },
"id": Identifier { "name": "javascript" }
}
]
}
}
]
|
name nodes 0 constant id Identifier { "name": ; "@Native" }resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}value id Identifier { "name": "@Native" }nodes 0 id Identifier { "name": "javascript" }resolved type name resolved type FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
}
resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
resolved type
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "@Native" },
"value": Class {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"id": Identifier { "name": ; "@Native" },
"nodes": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
]
}
}
]resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "@Native" },
"value": Class {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"id": Identifier { "name": ; "@Native" },
"nodes": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
]
}
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "@Native" },
"value": Class {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"id": Identifier { "name": ; "@Native" },
"nodes": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
]
}
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
%
|
@Native("(a, b) => ({ ...a, value: a.value % ; b.value })")
`%` = (a: Integer, b: != 0): Integer => 0
@Native("(a, b) => ({ ...a, value: a.value % ; b.value })")
`%` = (a: Float, b: Float): Float => 0.0
@Native("(a, b) => ({ ...a, value: a.value % ; b.value })")
`%` = (a: Integer, b: Float): Float => 0.0
@Native("(a, b) => ({ ...a, value: a.value % ; b.value })")
`%` = (a: Float, b: != 0): Float => 0.0
|
" @Native(\"(a, b) => ({ ...a, value: a.value % b.value })\") `%` = (a: Integer, b: != 0): Integer => 0
@Native(\"(a, b) => ({ ...a, value: a.value % b.value })\") `%` = (a: Float, b: Float): Float => 0.0
@Native(\"(a, b) => ({ ...a, value: a.value % b.value })\") `%` = (a: Integer, b: Float): Float => 0.0
@Native(\"(a, b) => ({ ...a, value: a.value % b.value })\") `%` = (a: Float, b: != 0): Float => 0.0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value % b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`%`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "!=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value % b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`%`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value % b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`%`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value % b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`%`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "!=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value % b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`%`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "!=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value % b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`%`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value % b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`%`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value % b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`%`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "!=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "%",
"nodes": [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "%" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": UnaryOperation {
"operator": Token { "type": "Operator", ; "source": "!=" },
"value": NumberLiteral { "integer": true, ; "value": 0 }
}
}
},
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "%" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "%" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "%" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": UnaryOperation {
"operator": Token { "type": "Operator", ; "source": "!=" },
"value": NumberLiteral { "integer": true, ; "value": 0 }
}
}
},
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "%" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": UnaryOperation {
"operator": Token { "type": "Operator", ; "source": "!=" },
"value": NumberLiteral { "integer": true, ; "value": 0 }
}
}
},
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "%" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "%" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "%" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": UnaryOperation {
"operator": Token { "type": "Operator", ; "source": "!=" },
"value": NumberLiteral { "integer": true, ; "value": 0 }
}
}
},
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
|
name nodes 0 Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; } }1 left Identifier { "name": ; "%" }operator Token { "type": "Operator", ; "source": "=" }right left left close Token { "type": "CloseParen", ; "source": ")" }open Token { "type": "OpenParen", ; "source": "(" }value left BinaryExpression { "left": Identifier { "name": ; "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" ; } }operator Token { "type": "Operator", ; "source": "," }right left Identifier { "name": ; "b" }operator Token { "type": "Operator", ; "source": ":" }right left NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}operator Token { "type": "Operator", ; "source": "!=" }right NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}value NumberLiteral { "integer": true, ; "value": 0 }
operator Token { "type": "Operator", ; "source": ":" }right Identifier { "name": ; "Integer" }
operator Token { "type": "Operator", ; "source": "=>" }right NumberLiteral { "integer": true, ; "value": 0 }
2 Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; } }3 BinaryExpression { "left": Identifier { "name": ; "%" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }4 Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; } }5 BinaryExpression { "left": Identifier { "name": ; "%" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }6 Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; } }7 left Identifier { "name": ; "%" }operator Token { "type": "Operator", ; "source": "=" }right left left close Token { "type": "CloseParen", ; "source": ")" }open Token { "type": "OpenParen", ; "source": "(" }value left BinaryExpression { "left": Identifier { "name": ; "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" ; } }operator Token { "type": "Operator", ; "source": "," }right left Identifier { "name": ; "b" }operator Token { "type": "Operator", ; "source": ":" }right left NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}operator Token { "type": "Operator", ; "source": "!=" }right NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}value NumberLiteral { "integer": true, ; "value": 0 }
operator Token { "type": "Operator", ; "source": ":" }right Identifier { "name": ; "Float" }
operator Token { "type": "Operator", ; "source": "=>" }right NumberLiteral { "value": ; 0 }
|
name nodes 0 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
1 constant id Identifier { "name": "%" }left Identifier { "name": "%" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
}
}
},
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
2 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
3 constant id Identifier { "name": "%" }left Identifier { "name": "%" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
4 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
5 constant id Identifier { "name": "%" }left Identifier { "name": "%" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
6 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
7 constant id Identifier { "name": "%" }left Identifier { "name": "%" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
}
}
},
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
|
name nodes [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "%" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "%" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "%" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "%" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}
]
|
name nodes 0 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "%" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "%" }
}
1 constant id Identifier { "name": "%" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
]value body id Identifier { "name": "%" }parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type left NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}name right NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
returnType
2 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "%" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "%" }
}
3 constant id Identifier { "name": "%" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "%" }parameters 0 Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}1 id Identifier { "name": "b" }type left NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}name right NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
returnType TypeReference { "name": "Float" }
4 Call {
"callee": TypeReference { "name": "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}5 Variable { "id": Identifier { "name": ; "%" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}6 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}7 Variable { "id": Identifier { "name": ; "%" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; "%" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "%" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
]returnType TypeReference { "name": "Integer" }
1 constant id Identifier { "name": "%" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "%" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Float" }
2 constant id Identifier { "name": "%" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "%" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Float" }
3 constant id Identifier { "name": "%" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "%" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
]returnType TypeReference { "name": ; "Float" }
|
name nodes 0 constant id Identifier { "name": ; "%" }value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "%" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
]nodes [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "%" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "%" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "%" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "%" } ; }
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
]returnType TypeReference { "name": "Integer" }
1 Variable {
"id": Identifier { "name": "%" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "%" } ; },
"constant": true
}2 Variable { "id": Identifier { "name": ; "%" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "%" } ; },
"constant": true
}3 Variable { "id": Identifier { "name": ; "%" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "%" } ; },
"constant": true
}
|
resolveExternalReferences
dependencies [
"@Native",
"Integer",
"Float"
] name nodes 0 constant id Identifier { "name": ; "%" }value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "%" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
]parameters 0 id Identifier { "name": ; "a" }type
1 Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" }
}
returnType
1 body NumberLiteral { "value": 0 }id Identifier { "name": "%" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
2 body NumberLiteral { "value": 0 }id Identifier { "name": "%" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
3 body NumberLiteral { "value": 0 }id Identifier { "name": "%" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
]parameters 0 id Identifier { "name": ; "a" }type
1 Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" ; } }
returnType
|
dependencies [
"@Native",
"Integer",
"Float"
] name nodes [
Variable { "id": Identifier { "name": ; "%" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "%" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "%" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "%" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "%" } ; }
]
},
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "%" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "%" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "%" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "%" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value % b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "%" } ; }
]
},
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": "%" }resolved type value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "%" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value % b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type left integer max NumberLiteral { "integer": true, ; "value": 0 }maxExclusive resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved right integer min NumberLiteral { "integer": true, ; "value": 0 }minExclusive resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "%" }
}
1 body NumberLiteral { "value": 0 }id Identifier { "name": "%" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value % b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "%" } }
2 body NumberLiteral { "value": 0 }id Identifier { "name": "%" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value % b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "%" } }
3 body NumberLiteral { "value": 0 }id Identifier { "name": "%" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value % b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type left integer max NumberLiteral { "integer": true, ; "value": 0 }maxExclusive resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved right integer min NumberLiteral { "integer": true, ; "value": 0 }minExclusive resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "%" } }
resolved type
resolved type
|
name nodes 0 constant id Identifier { "name": ; "%" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "%" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value % b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "%" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value % b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}
1 body NumberLiteral { "value": 0 }id Identifier { "name": "%" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value % b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "%" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value % b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
2 body NumberLiteral { "value": 0 }id Identifier { "name": "%" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value % b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "%" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value % b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
3 body NumberLiteral { "value": 0 }id Identifier { "name": "%" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value % b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "%" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value % b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "%" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "%" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "%" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "%" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "%" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "%" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "%" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "%" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "%" } }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "%" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "%" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "%" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "%" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "%" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "%" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "%" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "%" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value % b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "%" } }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
&
|
@Native("(a, b) => ({ ...a, value: a.value & ; b.value })")
`&` = (a: Integer, b: Integer): Integer => 0
|
" @Native(\"(a, b) => ({ ...a, value: a.value & ; b.value })\") `&` = (a: Integer, b: Integer): Integer => 0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value & b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`&`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value & b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`&`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "&",
"nodes": [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value & b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "&" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value & b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "&" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
|
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value & b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "&" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
|
name nodes 0 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value & b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value & b.value })" ; }
]
1 constant id Identifier { "name": "&" }left Identifier { "name": "&" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
|
name nodes [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value & b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "&" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}
]
|
name nodes 0 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "&" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value & b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value & b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "&" ; } }
1 Variable { "id": Identifier { "name": ; "&" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; "&" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value & b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "&" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value & b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": ; "Integer" }
|
name nodes [
Variable { "id": Identifier { "name": ; "&" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value & b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "&" } ; },
"constant": true
}
]
|
resolveExternalReferences
dependencies name nodes 0 constant id Identifier { "name": ; "&" }value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "&" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value & b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
|
dependencies name nodes [
Variable { "id": Identifier { "name": ; "&" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value & b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "&" } ; },
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "&" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value & b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "&" } ; },
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": ; "&" }resolved type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value & b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "&" ; } }value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "&" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value & b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value & b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "&" }
}
resolved type
|
name nodes 0 constant id Identifier { "name": ; "&" }resolved type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "&" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value & b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}
value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "&" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value & b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "&" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value & b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value & b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "&" } ; },
"resolved": true,
"id": Identifier { "name": ; "&" },
"value": Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value & b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "&" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value & b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "&" } ; },
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value & b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "&" } ; },
"resolved": true,
"id": Identifier { "name": ; "&" },
"value": Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value & b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "&" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value & b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "&" } ; },
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
**
|
@Native("(a, b) => ({ ...a, value: a.value ** ; b.value })")
`**` = (a: Integer, b: Integer): Integer => 0
@Native("(a, b) => ({ ...a, value: a.value ** ; b.value })")
`**` = (a: Float, b: Float): Float => 0.0
@Native("(a, b) => ({ ...a, value: a.value ** ; b.value })")
`**` = (a: Integer, b: Float): Float => 0.0
@Native("(a, b) => ({ ...a, value: a.value ** ; b.value })")
`**` = (a: Float, b: Integer): Float => 0.0
|
" @Native(\"(a, b) => ({ ...a, value: a.value ** b.value })\") `**` = (a: Integer, b: Integer): Integer => 0
@Native(\"(a, b) => ({ ...a, value: a.value ** b.value })\") `**` = (a: Float, b: Float): Float => 0.0
@Native(\"(a, b) => ({ ...a, value: a.value ** b.value })\") `**` = (a: Integer, b: Float): Float => 0.0
@Native(\"(a, b) => ({ ...a, value: a.value ** b.value })\") `**` = (a: Float, b: Integer): Float => 0.0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value ** b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`**`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value ** b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`**`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value ** b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`**`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value ** b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`**`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value ** b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`**`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value ** b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`**`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value ** b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`**`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value ** b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`**`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "**",
"nodes": [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "**" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "**" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "**" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "**" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "**" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "**" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "**" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "**" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
|
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "**" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "**" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "**" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "**" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
|
name nodes 0 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
1 constant id Identifier { "name": "**" }left Identifier { "name": "**" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
2 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
3 constant id Identifier { "name": "**" }left Identifier { "name": "**" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
4 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
5 constant id Identifier { "name": "**" }left Identifier { "name": "**" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
6 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
7 constant id Identifier { "name": "**" }left Identifier { "name": "**" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
|
name nodes [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "**" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "**" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "**" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "**" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}
]
|
name nodes 0 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "**" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "**" }
}
1 constant id Identifier { "name": "**" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
]value body id Identifier { "name": "**" }parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
2 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "**" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "**" }
}
3 constant id Identifier { "name": "**" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "**" }parameters 0 Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Float" }
4 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}5 Variable { "id": Identifier { "name": ; "**" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}6 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}7 Variable { "id": Identifier { "name": ; "**" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; "**" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "**" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Integer" }
1 constant id Identifier { "name": "**" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "**" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Float" }
2 constant id Identifier { "name": "**" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "**" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Float" }
3 constant id Identifier { "name": "**" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "**" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": ; "Float" }
|
name nodes 0 constant id Identifier { "name": ; "**" }value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "**" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
]nodes [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "**" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "**" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "**" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "**" } ; }
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Integer" }
1 Variable {
"id": Identifier { "name": "**" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "**" } ; },
"constant": true
}2 Variable { "id": Identifier { "name": ; "**" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "**" } ; },
"constant": true
}3 Variable { "id": Identifier { "name": ; "**" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "**" } ; },
"constant": true
}
|
resolveExternalReferences
dependencies [
"@Native",
"Integer",
"Float"
] name nodes 0 constant id Identifier { "name": ; "**" }value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "**" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
1 body NumberLiteral { "value": 0 }id Identifier { "name": "**" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
2 body NumberLiteral { "value": 0 }id Identifier { "name": "**" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
3 body NumberLiteral { "value": 0 }id Identifier { "name": "**" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
|
dependencies [
"@Native",
"Integer",
"Float"
] name nodes [
Variable { "id": Identifier { "name": ; "**" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "**" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "**" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "**" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "**" } ; }
]
},
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "**" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "**" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "**" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "**" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value ** b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "**" } ; }
]
},
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": "**" }resolved type value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "**" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value ** b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "**" }
}
1 body NumberLiteral { "value": 0 }id Identifier { "name": "**" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value ** b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "**" } }
2 body NumberLiteral { "value": 0 }id Identifier { "name": "**" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value ** b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "**" } }
3 body NumberLiteral { "value": 0 }id Identifier { "name": "**" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value ** b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "**" } }
resolved type
resolved type
|
name nodes 0 constant id Identifier { "name": ; "**" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "**" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value ** b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "**" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value ** b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}
1 body NumberLiteral { "value": 0 }id Identifier { "name": "**" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value ** b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "**" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value ** b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
2 body NumberLiteral { "value": 0 }id Identifier { "name": "**" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value ** b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "**" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value ** b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
3 body NumberLiteral { "value": 0 }id Identifier { "name": "**" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value ** b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "**" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value ** b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "**" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "**" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "**" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "**" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "**" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "**" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "**" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "**" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "**" } }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "**" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "**" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "**" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "**" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "**" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "**" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "**" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "**" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value ** b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "**" } }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
*
|
@Native("(a, b) => ({ ...a, value: a.value * ; b.value })")
`*` = (a: Integer, b: Integer): Integer => 0
@Native("(a, b) => ({ ...a, value: a.value * ; b.value })")
`*` = (a: Float, b: Float): Float => 0.0
@Native("(a, b) => ({ ...a, value: a.value * ; b.value })")
`*` = (a: Integer, b: Float): Float => 0.0
@Native("(a, b) => ({ ...a, value: a.value * ; b.value })")
`*` = (a: Float, b: Integer): Float => 0.0
|
" @Native(\"(a, b) => ({ ...a, value: a.value * b.value })\") `*` = (a: Integer, b: Integer): Integer => 0
@Native(\"(a, b) => ({ ...a, value: a.value * b.value })\") `*` = (a: Float, b: Float): Float => 0.0
@Native(\"(a, b) => ({ ...a, value: a.value * b.value })\") `*` = (a: Integer, b: Float): Float => 0.0
@Native(\"(a, b) => ({ ...a, value: a.value * b.value })\") `*` = (a: Float, b: Integer): Float => 0.0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value * b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`*`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value * b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`*`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value * b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`*`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value * b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`*`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value * b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`*`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value * b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`*`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value * b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`*`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value * b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`*`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "*",
"nodes": [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "*" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "*" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "*" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "*" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "*" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "*" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "*" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "*" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
|
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "*" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "*" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "*" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "*" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
|
name nodes 0 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
1 constant id Identifier { "name": "*" }left Identifier { "name": "*" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
2 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
3 constant id Identifier { "name": "*" }left Identifier { "name": "*" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
4 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
5 constant id Identifier { "name": "*" }left Identifier { "name": "*" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
6 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
7 constant id Identifier { "name": "*" }left Identifier { "name": "*" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
|
name nodes [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "*" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "*" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "*" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "*" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}
]
|
name nodes 0 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "*" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "*" }
}
1 constant id Identifier { "name": "*" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
]value body id Identifier { "name": "*" }parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
2 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "*" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "*" }
}
3 constant id Identifier { "name": "*" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "*" }parameters 0 Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Float" }
4 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}5 Variable { "id": Identifier { "name": ; "*" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}6 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}7 Variable { "id": Identifier { "name": ; "*" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; "*" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "*" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Integer" }
1 constant id Identifier { "name": "*" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "*" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Float" }
2 constant id Identifier { "name": "*" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "*" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Float" }
3 constant id Identifier { "name": "*" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "*" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": ; "Float" }
|
name nodes 0 constant id Identifier { "name": ; "*" }value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "*" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
]nodes [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "*" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "*" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "*" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "*" } ; }
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Integer" }
1 Variable {
"id": Identifier { "name": "*" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "*" } ; },
"constant": true
}2 Variable { "id": Identifier { "name": ; "*" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "*" } ; },
"constant": true
}3 Variable { "id": Identifier { "name": ; "*" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "*" } ; },
"constant": true
}
|
resolveExternalReferences
dependencies [
"@Native",
"Integer",
"Float"
] name nodes 0 constant id Identifier { "name": ; "*" }value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "*" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
1 body NumberLiteral { "value": 0 }id Identifier { "name": "*" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
2 body NumberLiteral { "value": 0 }id Identifier { "name": "*" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
3 body NumberLiteral { "value": 0 }id Identifier { "name": "*" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
|
dependencies [
"@Native",
"Integer",
"Float"
] name nodes [
Variable { "id": Identifier { "name": ; "*" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "*" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "*" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "*" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "*" } ; }
]
},
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "*" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "*" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "*" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "*" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value * b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "*" } ; }
]
},
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": "*" }resolved type value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "*" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value * b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "*" }
}
1 body NumberLiteral { "value": 0 }id Identifier { "name": "*" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value * b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "*" } }
2 body NumberLiteral { "value": 0 }id Identifier { "name": "*" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value * b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "*" } }
3 body NumberLiteral { "value": 0 }id Identifier { "name": "*" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value * b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "*" } }
resolved type
resolved type
|
name nodes 0 constant id Identifier { "name": ; "*" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "*" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value * b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "*" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value * b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}
1 body NumberLiteral { "value": 0 }id Identifier { "name": "*" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value * b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "*" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value * b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
2 body NumberLiteral { "value": 0 }id Identifier { "name": "*" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value * b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "*" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value * b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
3 body NumberLiteral { "value": 0 }id Identifier { "name": "*" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value * b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "*" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value * b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "*" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "*" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "*" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "*" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "*" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "*" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "*" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "*" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "*" } }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "*" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "*" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "*" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "*" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "*" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "*" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "*" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "*" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value * b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "*" } }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
+
|
@Native("(a, b) => ({ ...a, value: a.value + ; b.value })")
`+` = (a: Integer, b: Integer): Integer => 0
@Native("(a, b) => ({ ...a, value: a.value + ; b.value })")
`+` = (a: Float, b: Float): Float => 0.0
@Native("(a, b) => ({ ...a, value: a.value + ; b.value })")
`+` = (a: Integer, b: Float): Float => 0.0
@Native("(a, b) => ({ ...a, value: a.value + ; b.value })")
`+` = (a: Float, b: Integer): Float => 0.0
|
" @Native(\"(a, b) => ({ ...a, value: a.value + b.value })\") `+` = (a: Integer, b: Integer): Integer => 0
@Native(\"(a, b) => ({ ...a, value: a.value + b.value })\") `+` = (a: Float, b: Float): Float => 0.0
@Native(\"(a, b) => ({ ...a, value: a.value + b.value })\") `+` = (a: Integer, b: Float): Float => 0.0
@Native(\"(a, b) => ({ ...a, value: a.value + b.value })\") `+` = (a: Float, b: Integer): Float => 0.0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value + b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`+`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value + b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`+`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value + b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`+`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value + b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`+`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value + b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`+`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value + b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`+`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value + b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`+`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value + b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`+`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "+",
"nodes": [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "+" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "+" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "+" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "+" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "+" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "+" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "+" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "+" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
|
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "+" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "+" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "+" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "+" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
|
name nodes 0 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
1 constant id Identifier { "name": "+" }left Identifier { "name": "+" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
2 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
3 constant id Identifier { "name": "+" }left Identifier { "name": "+" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
4 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
5 constant id Identifier { "name": "+" }left Identifier { "name": "+" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
6 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
7 constant id Identifier { "name": "+" }left Identifier { "name": "+" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
|
name nodes [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "+" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "+" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "+" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "+" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}
]
|
name nodes 0 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "+" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "+" }
}
1 constant id Identifier { "name": "+" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
]value body id Identifier { "name": "+" }parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
2 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "+" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "+" }
}
3 constant id Identifier { "name": "+" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "+" }parameters 0 Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Float" }
4 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}5 Variable { "id": Identifier { "name": ; "+" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}6 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}7 Variable { "id": Identifier { "name": ; "+" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; "+" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "+" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Integer" }
1 constant id Identifier { "name": "+" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "+" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Float" }
2 constant id Identifier { "name": "+" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "+" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Float" }
3 constant id Identifier { "name": "+" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "+" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": ; "Float" }
|
name nodes 0 constant id Identifier { "name": ; "+" }value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "+" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
]nodes [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "+" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "+" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "+" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "+" } ; }
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Integer" }
1 Variable {
"id": Identifier { "name": "+" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "+" } ; },
"constant": true
}2 Variable { "id": Identifier { "name": ; "+" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "+" } ; },
"constant": true
}3 Variable { "id": Identifier { "name": ; "+" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "+" } ; },
"constant": true
}
|
resolveExternalReferences
dependencies [
"@Native",
"Integer",
"Float"
] name nodes 0 constant id Identifier { "name": ; "+" }value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "+" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
1 body NumberLiteral { "value": 0 }id Identifier { "name": "+" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
2 body NumberLiteral { "value": 0 }id Identifier { "name": "+" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
3 body NumberLiteral { "value": 0 }id Identifier { "name": "+" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
|
dependencies [
"@Native",
"Integer",
"Float"
] name nodes [
Variable { "id": Identifier { "name": ; "+" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "+" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "+" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "+" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "+" } ; }
]
},
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "+" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "+" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "+" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "+" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value + b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "+" } ; }
]
},
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": "+" }resolved type value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "+" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value + b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "+" }
}
1 body NumberLiteral { "value": 0 }id Identifier { "name": "+" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value + b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "+" } }
2 body NumberLiteral { "value": 0 }id Identifier { "name": "+" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value + b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "+" } }
3 body NumberLiteral { "value": 0 }id Identifier { "name": "+" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value + b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "+" } }
resolved type
resolved type
|
name nodes 0 constant id Identifier { "name": ; "+" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "+" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value + b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "+" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value + b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}
1 body NumberLiteral { "value": 0 }id Identifier { "name": "+" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value + b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "+" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value + b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
2 body NumberLiteral { "value": 0 }id Identifier { "name": "+" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value + b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "+" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value + b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
3 body NumberLiteral { "value": 0 }id Identifier { "name": "+" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value + b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "+" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value + b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "+" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "+" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "+" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "+" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "+" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "+" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "+" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "+" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "+" } }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "+" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "+" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "+" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "+" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "+" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "+" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "+" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "+" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value + b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "+" } }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
-
|
@Native("(a, b) => ({ ...a, value: a.value - ; b.value })")
`-` = (a: Integer, b: Integer): Integer => 0
@Native("(a, b) => ({ ...a, value: a.value - ; b.value })")
`-` = (a: Float, b: Float): Float => 0.0
@Native("(a, b) => ({ ...a, value: a.value - ; b.value })")
`-` = (a: Float, b: Integer): Float => 0.0
@Native("(a, b) => ({ ...a, value: a.value - ; b.value })")
`-` = (a: Integer, b: Float): Float => 0.0
@Native("(a) => ({ ...a, value: - ; a.value })")
`-` = (a: Float): Float => 0.0
@Native("(a) => ({ ...a, value: - ; a.value })")
`-` = (a: Integer): Integer => 0
|
" @Native(\"(a, b) => ({ ...a, value: a.value - b.value })\") `-` = (a: Integer, b: Integer): Integer => 0
@Native(\"(a, b) => ({ ...a, value: a.value - b.value })\") `-` = (a: Float, b: Float): Float => 0.0
@Native(\"(a, b) => ({ ...a, value: a.value - b.value })\") `-` = (a: Float, b: Integer): Float => 0.0
@Native(\"(a, b) => ({ ...a, value: a.value - b.value })\") `-` = (a: Integer, b: Float): Float => 0.0
@Native(\"(a) => ({ ...a, value: - a.value })\") `-` = (a: Float): Float => 0.0
@Native(\"(a) => ({ ...a, value: - a.value })\") `-` = (a: Integer): Integer => 0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value - b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`-`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value - b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`-`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value - b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`-`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value - b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`-`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a) => ({ ...a, value: - a.value })\"" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`-`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a) => ({ ...a, value: - a.value })\"" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`-`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value - b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`-`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value - b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`-`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value - b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`-`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value - b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`-`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a) => ({ ...a, value: - a.value })\"" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`-`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a) => ({ ...a, value: - a.value })\"" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`-`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "-",
"nodes": [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "-" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "-" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "-" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "-" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "-" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "-" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "-" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "-" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "-" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "-" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "-" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "-" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
|
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "-" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "-" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "-" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "-" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "-" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "-" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
|
name nodes 0 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
1 constant id Identifier { "name": "-" }left Identifier { "name": "-" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
2 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
3 constant id Identifier { "name": "-" }left Identifier { "name": "-" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
4 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
5 constant id Identifier { "name": "-" }left Identifier { "name": "-" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
6 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
7 constant id Identifier { "name": "-" }left Identifier { "name": "-" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
8 args StringLiteral { "value": "(a) => ({ ...a, value: - a.value ; })" }callee nodes [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
9 constant id Identifier { "name": "-" }left Identifier { "name": "-" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
10 args StringLiteral { "value": "(a) => ({ ...a, value: - a.value ; })" }callee nodes [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
11 constant id Identifier { "name": "-" }left Identifier { "name": "-" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
|
name nodes [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "-" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "-" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "-" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "-" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "-" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "-" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}
]
|
name nodes 0 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "-" }
}
1 constant id Identifier { "name": "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
]value body id Identifier { "name": "-" }parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
2 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "-" }
}
3 constant id Identifier { "name": "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "-" }parameters 0 id Identifier { "name": "a" }type
1 Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
returnType TypeReference { "name": "Float" }
4 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "-" }
}
5 constant id Identifier { "name": "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
}
]value body id Identifier { "name": "-" }parameters 0 id Identifier { "name": "a" }type
1 Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" ; } }
returnType
6 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}7 Variable { "id": Identifier { "name": ; "-" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}8 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
}9 Variable { "id": Identifier { "name": ; "-" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}10 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
}11 Variable { "id": Identifier { "name": ; "-" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Integer" }
1 constant id Identifier { "name": "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Float" }
2 constant id Identifier { "name": "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Float" }
3 constant id Identifier { "name": "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Float" }
4 constant id Identifier { "name": "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
]returnType TypeReference { "name": "Float" }
5 constant id Identifier { "name": "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
}
]returnType TypeReference { "name": ; "Integer" }
|
name nodes 0 constant id Identifier { "name": ; "-" }value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
]nodes [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "-" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "-" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "-" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "-" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "-" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "-" } ; }
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Integer" }
1 Variable {
"id": Identifier { "name": "-" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "-" } ; },
"constant": true
}2 Variable { "id": Identifier { "name": ; "-" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "-" } ; },
"constant": true
}3 Variable { "id": Identifier { "name": ; "-" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "-" } ; },
"constant": true
}4 Variable { "id": Identifier { "name": ; "-" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "-" } ; },
"constant": true
}5 Variable { "id": Identifier { "name": ; "-" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "-" } ; },
"constant": true
}
|
resolveExternalReferences
dependencies [
"@Native",
"Integer",
"Float"
] name nodes 0 constant id Identifier { "name": ; "-" }value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
1 body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
2 body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
3 body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
4 body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
}
]parameters 0 id Identifier { "name": ; "a" }type
returnType
5 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "-" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
}
]parameters 0 id Identifier { "name": ; "a" }type
returnType
|
dependencies [
"@Native",
"Integer",
"Float"
] name nodes [
Variable { "id": Identifier { "name": ; "-" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "-" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "-" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "-" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "-" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "-" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
}
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "-" } ; }
]
},
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "-" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "-" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "-" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "-" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value - b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "-" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "-" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: - a.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
}
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "-" } ; }
]
},
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": "-" }resolved type value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "-" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value - b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "-" }
}
1 body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value - b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } }
2 body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value - b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } }
3 body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value - b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } }
4 body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a) => ({ ...a, value: - a.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a) => ({ ...a, value: - a.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } }
5 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "-" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a) => ({ ...a, value: - a.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a) => ({ ...a, value: - a.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "-" }
}
resolved type
resolved type
|
name nodes 0 constant id Identifier { "name": ; "-" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "-" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value - b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "-" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value - b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}
1 body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value - b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value - b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
2 body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value - b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value - b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
3 body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value - b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value - b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
4 body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a) => ({ ...a, value: - a.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "-" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a) => ({ ...a, value: - a.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
5 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "-" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a) => ({ ...a, value: - a.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "-" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a) => ({ ...a, value: - a.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "-" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "-" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "-" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: - a.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: - a.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: - a.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "-" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: - a.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "-" } ; }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "-" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "-" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "-" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value - b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: - a.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: - a.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "-" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: - a.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "-" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: - a.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "-" } ; }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
<
|
@Native("(a, b) => ({ ...a, value: a.value < ; b.value })")
`<` = (a: Integer, b: Integer): Boolean => 0
@Native("(a, b) => ({ ...a, value: a.value < ; b.value })")
`<` = (a: Float, b: Float): Boolean => 0
@Native("(a, b) => ({ ...a, value: a.value < ; b.value })")
`<` = (a: Integer, b: Float): Boolean => 0
@Native("(a, b) => ({ ...a, value: a.value < ; b.value })")
`<` = (a: Float, b: Integer): Boolean => 0
|
" @Native(\"(a, b) => ({ ...a, value: a.value < b.value })\") `<` = (a: Integer, b: Integer): Boolean => 0
@Native(\"(a, b) => ({ ...a, value: a.value < b.value })\") `<` = (a: Float, b: Float): Boolean => 0
@Native(\"(a, b) => ({ ...a, value: a.value < b.value })\") `<` = (a: Integer, b: Float): Boolean => 0
@Native(\"(a, b) => ({ ...a, value: a.value < b.value })\") `<` = (a: Float, b: Integer): Boolean => 0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value < b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`<`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value < b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`<`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value < b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`<`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value < b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`<`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value < b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`<`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value < b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`<`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value < b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`<`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value < b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`<`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "<",
"nodes": [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
|
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
|
name nodes 0 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
1 constant id Identifier { "name": "<" }left Identifier { "name": "<" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
2 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
3 constant id Identifier { "name": "<" }left Identifier { "name": "<" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
4 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
5 constant id Identifier { "name": "<" }left Identifier { "name": "<" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
6 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
7 constant id Identifier { "name": "<" }left Identifier { "name": "<" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
|
name nodes [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "<" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "<" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "<" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "<" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}
]
|
name nodes 0 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" }
}
1 constant id Identifier { "name": "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": "<" }parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
2 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" }
}
3 constant id Identifier { "name": "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": "<" }parameters 0 Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
4 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}5 Variable { "id": Identifier { "name": ; "<" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}6 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}7 Variable { "id": Identifier { "name": ; "<" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Boolean" }
1 constant id Identifier { "name": "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Boolean" }
2 constant id Identifier { "name": "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Boolean" }
3 constant id Identifier { "name": "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": ; "Boolean" }
|
name nodes 0 constant id Identifier { "name": ; "<" }value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]nodes [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; }
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Boolean" }
1 Variable {
"id": Identifier { "name": "<" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
"constant": true
}2 Variable { "id": Identifier { "name": ; "<" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
"constant": true
}3 Variable { "id": Identifier { "name": ; "<" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
"constant": true
}
|
resolveExternalReferences
dependencies [
"@Native",
"Integer",
"Boolean",
"Float"
] name nodes 0 constant id Identifier { "name": ; "<" }value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
2 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
3 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
|
dependencies [
"@Native",
"Integer",
"Boolean",
"Float"
] name nodes [
Variable { "id": Identifier { "name": ; "<" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; }
]
},
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": ; "<" }value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]parameters [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
]returnType integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 0 }name resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]parameters [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
]returnType integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 0 }name resolved type TypeReference { "resolved": true, ; "name": "@Type" }
2 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]parameters [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
]returnType integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 0 }name resolved type TypeReference { "resolved": true, ; "name": "@Type" }
3 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value < b.value })" ; }
]
}
]parameters [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
]returnType integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 0 }name resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes 0 constant id Identifier { "name": "<" }resolved type value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value < b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" ; } }
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value < b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" ; } }
2 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value < b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" ; } }
3 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value < b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" }
}
resolved type
resolved type
|
name nodes 0 constant id Identifier { "name": ; "<" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value < b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value < b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value < b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value < b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
2 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value < b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value < b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
3 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value < b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value < b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "<" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "<" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value < b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<" } ; }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
<=
|
@Native("(a, b) => ({ ...a, value: a.value <= ; b.value })")
`<=` = (a: Integer, b: Integer): Boolean => 0
@Native("(a, b) => ({ ...a, value: a.value <= ; b.value })")
`<=` = (a: Float, b: Float): Boolean => 0
@Native("(a, b) => ({ ...a, value: a.value <= ; b.value })")
`<=` = (a: Integer, b: Float): Boolean => 0
@Native("(a, b) => ({ ...a, value: a.value <= ; b.value })")
`<=` = (a: Float, b: Integer): Boolean => 0
|
" @Native(\"(a, b) => ({ ...a, value: a.value <= b.value })\") `<=` = (a: Integer, b: Integer): Boolean => 0
@Native(\"(a, b) => ({ ...a, value: a.value <= b.value })\") `<=` = (a: Float, b: Float): Boolean => 0
@Native(\"(a, b) => ({ ...a, value: a.value <= b.value })\") `<=` = (a: Integer, b: Float): Boolean => 0
@Native(\"(a, b) => ({ ...a, value: a.value <= b.value })\") `<=` = (a: Float, b: Integer): Boolean => 0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value <= b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`<=`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value <= b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`<=`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value <= b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`<=`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value <= b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`<=`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value <= b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`<=`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value <= b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`<=`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value <= b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`<=`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value <= b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`<=`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "<=",
"nodes": [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
|
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "<=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
|
name nodes 0 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
1 constant id Identifier { "name": "<=" }left Identifier { "name": "<=" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
2 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
3 constant id Identifier { "name": "<=" }left Identifier { "name": "<=" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
4 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
5 constant id Identifier { "name": "<=" }left Identifier { "name": "<=" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
6 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
7 constant id Identifier { "name": "<=" }left Identifier { "name": "<=" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
|
name nodes [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "<=" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "<=" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "<=" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "<=" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}
]
|
name nodes 0 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" }
}
1 constant id Identifier { "name": "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": "<=" }parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
2 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" }
}
3 constant id Identifier { "name": "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": "<=" }parameters 0 Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
4 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}5 Variable { "id": Identifier { "name": ; "<=" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}6 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}7 Variable { "id": Identifier { "name": ; "<=" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Boolean" }
1 constant id Identifier { "name": "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Boolean" }
2 constant id Identifier { "name": "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Boolean" }
3 constant id Identifier { "name": "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": ; "Boolean" }
|
name nodes 0 constant id Identifier { "name": ; "<=" }value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]nodes [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; }
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Boolean" }
1 Variable {
"id": Identifier { "name": "<=" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
"constant": true
}2 Variable { "id": Identifier { "name": ; "<=" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
"constant": true
}3 Variable { "id": Identifier { "name": ; "<=" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
"constant": true
}
|
resolveExternalReferences
dependencies [
"@Native",
"Integer",
"Boolean",
"Float"
] name nodes 0 constant id Identifier { "name": ; "<=" }value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
2 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
3 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
|
dependencies [
"@Native",
"Integer",
"Boolean",
"Float"
] name nodes [
Variable { "id": Identifier { "name": ; "<=" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; }
]
},
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": ; "<=" }value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]parameters [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
]returnType integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 0 }name resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]parameters [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
]returnType integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 0 }name resolved type TypeReference { "resolved": true, ; "name": "@Type" }
2 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]parameters [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
]returnType integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 0 }name resolved type TypeReference { "resolved": true, ; "name": "@Type" }
3 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value <= b.value })" ; }
]
}
]parameters [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
]returnType integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 0 }name resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes 0 constant id Identifier { "name": "<=" }resolved type value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value <= b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" ; } }
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value <= b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" ; } }
2 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value <= b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" ; } }
3 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value <= b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" }
}
resolved type
resolved type
|
name nodes 0 constant id Identifier { "name": ; "<=" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value <= b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value <= b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value <= b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value <= b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
2 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value <= b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value <= b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
3 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value <= b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "<=" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value <= b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "<=" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "<=" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value <= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "<=" } ; }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
>
|
@Native("(a, b) => ({ ...a, value: a.value > ; b.value })")
`>` = (a: Integer, b: Integer): Boolean => 0
@Native("(a, b) => ({ ...a, value: a.value > ; b.value })")
`>` = (a: Float, b: Float): Boolean => 0
@Native("(a, b) => ({ ...a, value: a.value > ; b.value })")
`>` = (a: Integer, b: Float): Boolean => 0
@Native("(a, b) => ({ ...a, value: a.value > ; b.value })")
`>` = (a: Float, b: Integer): Boolean => 0
|
" @Native(\"(a, b) => ({ ...a, value: a.value > b.value })\") `>` = (a: Integer, b: Integer): Boolean => 0
@Native(\"(a, b) => ({ ...a, value: a.value > b.value })\") `>` = (a: Float, b: Float): Boolean => 0
@Native(\"(a, b) => ({ ...a, value: a.value > b.value })\") `>` = (a: Integer, b: Float): Boolean => 0
@Native(\"(a, b) => ({ ...a, value: a.value > b.value })\") `>` = (a: Float, b: Integer): Boolean => 0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value > b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`>`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value > b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`>`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value > b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`>`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value > b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`>`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value > b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`>`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value > b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`>`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value > b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`>`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value > b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`>`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": ">",
"nodes": [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
|
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
|
name nodes 0 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
1 constant id Identifier { "name": ">" }left Identifier { "name": ">" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
2 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
3 constant id Identifier { "name": ">" }left Identifier { "name": ">" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
4 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
5 constant id Identifier { "name": ">" }left Identifier { "name": ">" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
6 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
7 constant id Identifier { "name": ">" }left Identifier { "name": ">" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
|
name nodes [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; ">" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; ">" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; ">" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; ">" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}
]
|
name nodes 0 callee TypeReference { "name": "@Native" }constant id Identifier { "name": ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" }
}
1 constant id Identifier { "name": ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ">" }parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
2 callee TypeReference { "name": "@Native" }constant id Identifier { "name": ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" }
}
3 constant id Identifier { "name": ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ">" }parameters 0 Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
4 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}5 Variable { "id": Identifier { "name": ; ">" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}6 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}7 Variable { "id": Identifier { "name": ; ">" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Boolean" }
1 constant id Identifier { "name": ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Boolean" }
2 constant id Identifier { "name": ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Boolean" }
3 constant id Identifier { "name": ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": ; "Boolean" }
|
name nodes 0 constant id Identifier { "name": ; ">" }value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]nodes [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; }
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Boolean" }
1 Variable {
"id": Identifier { "name": ">" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
"constant": true
}2 Variable { "id": Identifier { "name": ; ">" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
"constant": true
}3 Variable { "id": Identifier { "name": ; ">" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
"constant": true
}
|
resolveExternalReferences
dependencies [
"@Native",
"Integer",
"Boolean",
"Float"
] name nodes 0 constant id Identifier { "name": ; ">" }value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
2 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
3 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
|
dependencies [
"@Native",
"Integer",
"Boolean",
"Float"
] name nodes [
Variable { "id": Identifier { "name": ; ">" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; }
]
},
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": ; ">" }value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]parameters [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
]returnType integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 0 }name resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]parameters [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
]returnType integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 0 }name resolved type TypeReference { "resolved": true, ; "name": "@Type" }
2 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]parameters [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
]returnType integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 0 }name resolved type TypeReference { "resolved": true, ; "name": "@Type" }
3 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value > b.value })" ; }
]
}
]parameters [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
]returnType integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 0 }name resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes 0 constant id Identifier { "name": ">" }resolved type value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value > b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" ; } }
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value > b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" ; } }
2 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value > b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" ; } }
3 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value > b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" }
}
resolved type
resolved type
|
name nodes 0 constant id Identifier { "name": ; ">" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value > b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value > b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value > b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value > b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
2 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value > b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value > b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
3 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value > b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value > b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; ">" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; ">" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value > b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">" } ; }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
>=
|
@Native("(a, b) => ({ ...a, value: a.value >= ; b.value })")
`>=` = (a: Integer, b: Integer): Boolean => 0
@Native("(a, b) => ({ ...a, value: a.value >= ; b.value })")
`>=` = (a: Float, b: Float): Boolean => 0
@Native("(a, b) => ({ ...a, value: a.value >= ; b.value })")
`>=` = (a: Integer, b: Float): Boolean => 0
@Native("(a, b) => ({ ...a, value: a.value >= ; b.value })")
`>=` = (a: Float, b: Integer): Boolean => 0
|
" @Native(\"(a, b) => ({ ...a, value: a.value >= b.value })\") `>=` = (a: Integer, b: Integer): Boolean => 0
@Native(\"(a, b) => ({ ...a, value: a.value >= b.value })\") `>=` = (a: Float, b: Float): Boolean => 0
@Native(\"(a, b) => ({ ...a, value: a.value >= b.value })\") `>=` = (a: Integer, b: Float): Boolean => 0
@Native(\"(a, b) => ({ ...a, value: a.value >= b.value })\") `>=` = (a: Float, b: Integer): Boolean => 0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value >= b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`>=`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value >= b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`>=`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value >= b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`>=`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value >= b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`>=`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value >= b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`>=`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value >= b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`>=`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value >= b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`>=`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value >= b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`>=`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Boolean" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": ">=",
"nodes": [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
|
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; ">=" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
|
name nodes 0 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
1 constant id Identifier { "name": ">=" }left Identifier { "name": ">=" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
2 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
3 constant id Identifier { "name": ">=" }left Identifier { "name": ">=" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
4 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
5 constant id Identifier { "name": ">=" }left Identifier { "name": ">=" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
6 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
7 constant id Identifier { "name": ">=" }left Identifier { "name": ">=" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Boolean" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
|
name nodes [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; ">=" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; ">=" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; ">=" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; ">=" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}
]
|
name nodes 0 callee TypeReference { "name": "@Native" }constant id Identifier { "name": ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" }
}
1 constant id Identifier { "name": ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ">=" }parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
2 callee TypeReference { "name": "@Native" }constant id Identifier { "name": ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" }
}
3 constant id Identifier { "name": ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ">=" }parameters 0 Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
4 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}5 Variable { "id": Identifier { "name": ; ">=" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}6 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}7 Variable { "id": Identifier { "name": ; ">=" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Boolean" }
1 constant id Identifier { "name": ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Boolean" }
2 constant id Identifier { "name": ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Boolean" }
3 constant id Identifier { "name": ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": ; "Boolean" }
|
name nodes 0 constant id Identifier { "name": ; ">=" }value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]nodes [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; }
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Boolean" }
1 Variable {
"id": Identifier { "name": ">=" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
"constant": true
}2 Variable { "id": Identifier { "name": ; ">=" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
"constant": true
}3 Variable { "id": Identifier { "name": ; ">=" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
"constant": true
}
|
resolveExternalReferences
dependencies [
"@Native",
"Integer",
"Boolean",
"Float"
] name nodes 0 constant id Identifier { "name": ; ">=" }value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
2 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
3 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Boolean" }
|
dependencies [
"@Native",
"Integer",
"Boolean",
"Float"
] name nodes [
Variable { "id": Identifier { "name": ; ">=" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Boolean" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; }
]
},
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": ; ">=" }value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]parameters [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
]returnType integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 0 }name resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]parameters [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
]returnType integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 0 }name resolved type TypeReference { "resolved": true, ; "name": "@Type" }
2 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]parameters [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
]returnType integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 0 }name resolved type TypeReference { "resolved": true, ; "name": "@Type" }
3 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value >= b.value })" ; }
]
}
]parameters [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
]returnType integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 0 }name resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes 0 constant id Identifier { "name": ">=" }resolved type value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value >= b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" ; } }
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value >= b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" ; } }
2 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value >= b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" ; } }
3 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value >= b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" }
}
resolved type
resolved type
|
name nodes 0 constant id Identifier { "name": ; ">=" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value >= b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value >= b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value >= b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value >= b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
2 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value >= b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value >= b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
3 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value >= b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; ">=" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value >= b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; ">=" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; ">=" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value >= b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": ">=" } ; }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
Array
|
class Array
length: >= 0
|
" class Array length: >= 0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Array" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Indent", ; "source": " " },
Token { "type": "Id", ; "source": "length" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": ">=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": ; "Outdent" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Array" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Indent", ; "source": " " },
Token { "type": "Id", ; "source": "length" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": ">=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": ; "Outdent" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "Array",
"nodes": [
Variable { "constant": true, ; "id": Identifier { "name": "Array" },
"value": PstClass { "id": Identifier { "name": ; "Array" },
"constant": true,
"nodes": [
BinaryExpression { "left": Identifier { "name": ; "length" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": UnaryOperation {
"operator": Token { "type": "Operator", ; "source": ">=" },
"value": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
}
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Array" },
"value": PstClass { "id": Identifier { "name": ; "Array" },
"constant": true,
"nodes": [
BinaryExpression { "left": Identifier { "name": ; "length" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": UnaryOperation {
"operator": Token { "type": "Operator", ; "source": ">=" },
"value": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
}
}
]
|
name nodes 0 constant id Identifier { "name": "Array" }value constant id Identifier { "name": "Array" }nodes 0 left Identifier { "name": "length" }operator Token { "type": "Operator", ; "source": ":" }right integer min NumberLiteral { "integer": true, ; "value": 0 }operator Token { "type": "Operator", ; "source": ">=" }value NumberLiteral { "integer": true, ; "value": 0 }
|
name nodes 0 constant id Identifier { "name": "Array" }value constant id Identifier { "name": "Array" }nodes 0 id Identifier { "name": "length" }left Identifier { "name": "length" }operator Token { "type": "Operator", ; "source": ":" }right NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}type NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Array" },
"value": Class { "id": Identifier { "name": ; "Array" },
"nodes": [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"id": Identifier { "name": "length" } ; }
]
}
}
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Array" },
"value": Class { "id": Identifier { "name": ; "Array" },
"nodes": [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"id": Identifier { "name": "length" } ; }
]
}
}
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Array" },
"value": Class { "id": Identifier { "name": ; "Array" },
"nodes": [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"id": Identifier { "name": "length" } ; }
]
}
}
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Array" },
"value": Class { "id": Identifier { "name": ; "Array" },
"nodes": [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"id": Identifier { "name": "length" } ; }
]
}
}
]
|
resolveExternalReferences
dependencies name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Array" },
"value": Class { "id": Identifier { "name": ; "Array" },
"nodes": [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"id": Identifier { "name": "length" } ; }
]
}
}
]
|
dependencies name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Array" },
"value": Class { "id": Identifier { "name": ; "Array" },
"nodes": [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"id": Identifier { "name": "length" } ; }
]
}
}
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Array" },
"value": Class { "id": Identifier { "name": ; "Array" },
"nodes": [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"id": Identifier { "name": "length" } ; }
]
}
}
]
|
name nodes 0 constant id Identifier { "name": ; "Array" }resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "length" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "Array" }
}value id Identifier { "name": "Array" }nodes 0 id Identifier { "name": "length" }resolved type integer min NumberLiteral { "integer": true, ; "value": 0 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "length" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "Array" }
}
resolved type
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "length" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "Array" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "Array" },
"value": Class {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "length" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "Array" }
},
"resolved": true,
"id": Identifier { "name": ; "Array" },
"nodes": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "length" } ; }
]
}
}
]resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "length" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "Array" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "Array" },
"value": Class {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "length" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "Array" }
},
"resolved": true,
"id": Identifier { "name": ; "Array" },
"nodes": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "length" } ; }
]
}
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "length" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "Array" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "Array" },
"value": Class {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "length" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "Array" }
},
"resolved": true,
"id": Identifier { "name": ; "Array" },
"nodes": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "length" } ; }
]
}
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
Any
|
class Any
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Any" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Any" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "Any",
"nodes": [
Variable { "constant": true, ; "id": Identifier { "name": "Any" },
"value": PstClass { "id": Identifier { "name": "Any" }, ; "constant": true }
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Any" },
"value": PstClass { "id": Identifier { "name": "Any" }, ; "constant": true }
}
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Any" },
"value": PstClass { "id": Identifier { "name": "Any" }, ; "constant": true }
}
]
|
name nodes 0 constant id Identifier { "name": "Any" }value constant id Identifier { "name": "Any" }
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Any" },
"value": Class { "id": Identifier { "name": "Any" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Any" },
"value": Class { "id": Identifier { "name": "Any" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Any" },
"value": Class { "id": Identifier { "name": "Any" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Any" },
"value": Class { "id": Identifier { "name": "Any" } ; } }
]
|
resolveExternalReferences
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Any" },
"value": Class { "id": Identifier { "name": "Any" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Any" },
"value": Class { "id": Identifier { "name": "Any" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Any" },
"value": Class { "id": Identifier { "name": "Any" } ; } }
]
|
name nodes 0 constant id Identifier { "name": ; "Any" }resolved type FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
}value id Identifier { "name": ; "Any" }resolved type FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
}
resolved type
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "Any" },
"value": Class {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"id": Identifier { "name": "Any" } ; } }
]resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "Any" },
"value": Class {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"id": Identifier { "name": "Any" } ; } }
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "Any" },
"value": Class {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"id": Identifier { "name": "Any" } ; } }
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
Pair
|
class Pair
key: Any
value: Any
|
" class Pair key: Any value: Any " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Pair" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Indent", ; "source": " " },
Token { "type": "Id", ; "source": "key" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Any" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "value" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Any" },
Token { "type": ; "Outdent" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Pair" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Indent", ; "source": " " },
Token { "type": "Id", ; "source": "key" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Any" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "value" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Any" },
Token { "type": ; "Outdent" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "Pair",
"nodes": [
Variable { "constant": true, ; "id": Identifier { "name": "Pair" },
"value": PstClass { "id": Identifier { "name": ; "Pair" },
"constant": true,
"nodes": [
BinaryExpression { "left": Identifier { "name": ; "key" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Any" } ; },
BinaryExpression { "left": Identifier { "name": ; "value" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Any" } ; }
]
}
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Pair" },
"value": PstClass { "id": Identifier { "name": ; "Pair" },
"constant": true,
"nodes": [
BinaryExpression { "left": Identifier { "name": ; "key" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Any" } ; },
BinaryExpression { "left": Identifier { "name": ; "value" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Any" } ; }
]
}
}
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Pair" },
"value": PstClass { "id": Identifier { "name": ; "Pair" },
"constant": true,
"nodes": [
BinaryExpression { "left": Identifier { "name": ; "key" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Any" } ; },
BinaryExpression { "left": Identifier { "name": ; "value" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Any" } ; }
]
}
}
]
|
name nodes 0 constant id Identifier { "name": "Pair" }value constant id Identifier { "name": "Pair" }nodes 0 id Identifier { "name": "key" }left Identifier { "name": "key" }operator Token { "type": "Operator", ; "source": ":" }right Identifier { "name": "Any" }type TypeReference { "name": "Any" }
1 id Identifier { "name": "value" }left Identifier { "name": "value" }operator Token { "type": "Operator", ; "source": ":" }right Identifier { "name": "Any" }type TypeReference { "name": "Any" }
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Pair" },
"value": Class { "id": Identifier { "name": ; "Pair" },
"nodes": [
Variable {
"type": TypeReference { "name": "Any" },
"id": Identifier { "name": "key" }
},
Variable {
"type": TypeReference { "name": "Any" },
"id": Identifier { "name": "value" }
}
]
}
}
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Pair" },
"value": Class { "id": Identifier { "name": ; "Pair" },
"nodes": [
Variable {
"type": TypeReference { "name": "Any" },
"id": Identifier { "name": "key" }
},
Variable {
"type": TypeReference { "name": "Any" },
"id": Identifier { "name": "value" }
}
]
}
}
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Pair" },
"value": Class { "id": Identifier { "name": ; "Pair" },
"nodes": [
Variable {
"type": TypeReference { "name": "Any" },
"id": Identifier { "name": "key" }
},
Variable {
"type": TypeReference { "name": "Any" },
"id": Identifier { "name": "value" }
}
]
}
}
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Pair" },
"value": Class { "id": Identifier { "name": ; "Pair" },
"nodes": [
Variable {
"type": TypeReference { "name": "Any" },
"id": Identifier { "name": "key" }
},
Variable {
"type": TypeReference { "name": "Any" },
"id": Identifier { "name": "value" }
}
]
}
}
]
|
resolveExternalReferences
dependencies name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Pair" },
"value": Class { "id": Identifier { "name": ; "Pair" },
"nodes": [
Variable {
"type": TypeReference { "name": "Any" },
"id": Identifier { "name": "key" }
},
Variable {
"type": TypeReference { "name": "Any" },
"id": Identifier { "name": "value" }
}
]
}
}
]
|
dependencies name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Pair" },
"value": Class { "id": Identifier { "name": ; "Pair" },
"nodes": [
Variable {
"type": TypeReference { "name": "Any" },
"id": Identifier { "name": "key" }
},
Variable {
"type": TypeReference { "name": "Any" },
"id": Identifier { "name": "value" }
}
]
}
}
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Pair" },
"value": Class { "id": Identifier { "name": ; "Pair" },
"nodes": [
Variable {
"type": TypeReference { "name": "Any" },
"id": Identifier { "name": "key" }
},
Variable {
"type": TypeReference { "name": "Any" },
"id": Identifier { "name": "value" }
}
]
}
}
]
|
name nodes 0 constant id Identifier { "name": ; "Pair" }resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "key" } ; },
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "value" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "Pair" }
}value id Identifier { "name": "Pair" }nodes 0 id Identifier { "name": "key" }resolved type name resolved type FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
}
1 id Identifier { "name": ; "value" }resolved type name resolved type FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
}
resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "key" } ; },
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "value" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "Pair" }
}
resolved type
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "key" } ; },
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "value" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "Pair" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "Pair" },
"value": Class {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "key" } ; },
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "value" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "Pair" }
},
"resolved": true,
"id": Identifier { "name": ; "Pair" },
"nodes": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "key" } ; },
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "value" } ; }
]
}
}
]resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "key" } ; },
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "value" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "Pair" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "Pair" },
"value": Class {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "key" } ; },
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "value" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "Pair" }
},
"resolved": true,
"id": Identifier { "name": ; "Pair" },
"nodes": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "key" } ; },
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "value" } ; }
]
}
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "key" } ; },
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "value" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "Pair" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "Pair" },
"value": Class {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "key" } ; },
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "value" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "Pair" }
},
"resolved": true,
"id": Identifier { "name": ; "Pair" },
"nodes": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "key" } ; },
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Any" }
},
"resolved": true,
"name": "Any"
},
"resolved": true,
"id": Identifier { "name": "value" } ; }
]
}
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
/
|
@Native("(a, b) => ({ ...a, value: a.value / ; b.value })")
`/` = (a: Integer, b: != 0): Integer => 0
@Native("(a, b) => ({ ...a, value: a.value / ; b.value })")
`/` = (a: Float, b: Float): Float => 0.0
@Native("(a, b) => ({ ...a, value: a.value / ; b.value })")
`/` = (a: Integer, b: Float): Float => 0.0
@Native("(a, b) => ({ ...a, value: a.value / ; b.value })")
`/` = (a: Float, b: Integer): Float => 0.0
|
" @Native(\"(a, b) => ({ ...a, value: a.value / b.value })\") `/` = (a: Integer, b: != 0): Integer => 0
@Native(\"(a, b) => ({ ...a, value: a.value / b.value })\") `/` = (a: Float, b: Float): Float => 0.0
@Native(\"(a, b) => ({ ...a, value: a.value / b.value })\") `/` = (a: Integer, b: Float): Float => 0.0
@Native(\"(a, b) => ({ ...a, value: a.value / b.value })\") `/` = (a: Float, b: Integer): Float => 0.0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value / b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`/`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "!=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value / b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`/`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value / b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`/`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value / b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`/`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value / b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`/`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "!=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value / b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`/`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value / b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`/`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value / b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`/`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "/",
"nodes": [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "/" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": UnaryOperation {
"operator": Token { "type": "Operator", ; "source": "!=" },
"value": NumberLiteral { "integer": true, ; "value": 0 }
}
}
},
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "/" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "/" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "/" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "/" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": UnaryOperation {
"operator": Token { "type": "Operator", ; "source": "!=" },
"value": NumberLiteral { "integer": true, ; "value": 0 }
}
}
},
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "/" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "/" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } },
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "/" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
|
name nodes 0 Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; } }1 left Identifier { "name": ; "/" }operator Token { "type": "Operator", ; "source": "=" }right left left close Token { "type": "CloseParen", ; "source": ")" }open Token { "type": "OpenParen", ; "source": "(" }value left BinaryExpression { "left": Identifier { "name": ; "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" ; } }operator Token { "type": "Operator", ; "source": "," }right left Identifier { "name": ; "b" }operator Token { "type": "Operator", ; "source": ":" }right left NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}operator Token { "type": "Operator", ; "source": "!=" }right NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}value NumberLiteral { "integer": true, ; "value": 0 }
operator Token { "type": "Operator", ; "source": ":" }right Identifier { "name": ; "Integer" }
operator Token { "type": "Operator", ; "source": "=>" }right NumberLiteral { "integer": true, ; "value": 0 }
2 Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; } }3 BinaryExpression { "left": Identifier { "name": ; "/" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }4 Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; } }5 BinaryExpression { "left": Identifier { "name": ; "/" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }6 Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; } }7 BinaryExpression { "left": Identifier { "name": ; "/" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
|
name nodes 0 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
1 constant id Identifier { "name": "/" }left Identifier { "name": "/" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
}
}
},
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
2 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
3 constant id Identifier { "name": "/" }left Identifier { "name": "/" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
4 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
5 constant id Identifier { "name": "/" }left Identifier { "name": "/" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
6 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
7 constant id Identifier { "name": "/" }left Identifier { "name": "/" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
|
name nodes [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "/" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "/" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "/" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "/" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}
]
|
name nodes 0 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "/" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "/" }
}
1 constant id Identifier { "name": "/" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
]value body id Identifier { "name": "/" }parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type left NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}name right NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
returnType
2 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "/" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "/" }
}
3 constant id Identifier { "name": "/" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "/" }parameters 0 Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}1 id Identifier { "name": "b" }type
returnType TypeReference { "name": "Float" }
4 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}5 Variable { "id": Identifier { "name": ; "/" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}6 Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}7 Variable { "id": Identifier { "name": ; "/" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; "/" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "/" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
]returnType TypeReference { "name": "Integer" }
1 constant id Identifier { "name": "/" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "/" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Float" }
2 constant id Identifier { "name": "/" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "/" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Float" }
3 constant id Identifier { "name": "/" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "/" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": ; "Float" }
|
name nodes 0 constant id Identifier { "name": ; "/" }value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "/" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
]nodes [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "/" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "/" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "/" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "/" } ; }
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
]returnType TypeReference { "name": "Integer" }
1 Variable {
"id": Identifier { "name": "/" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "/" } ; },
"constant": true
}2 Variable { "id": Identifier { "name": ; "/" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "/" } ; },
"constant": true
}3 Variable { "id": Identifier { "name": ; "/" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "/" } ; },
"constant": true
}
|
resolveExternalReferences
dependencies [
"@Native",
"Integer",
"Float"
] name nodes 0 constant id Identifier { "name": ; "/" }value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "/" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
]parameters 0 id Identifier { "name": ; "a" }type
1 Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" }
}
returnType
1 body NumberLiteral { "value": 0 }id Identifier { "name": "/" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
2 body NumberLiteral { "value": 0 }id Identifier { "name": "/" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
3 body NumberLiteral { "value": 0 }id Identifier { "name": "/" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
|
dependencies [
"@Native",
"Integer",
"Float"
] name nodes [
Variable { "id": Identifier { "name": ; "/" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "/" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "/" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "/" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "/" } ; }
]
},
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "/" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": UnionType {
"left": NumberType {
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "/" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "/" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "/" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value / b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "/" } ; }
]
},
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": "/" }resolved type value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "/" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value / b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type left integer max NumberLiteral { "integer": true, ; "value": 0 }maxExclusive resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved right integer min NumberLiteral { "integer": true, ; "value": 0 }minExclusive resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "/" }
}
1 body NumberLiteral { "value": 0 }id Identifier { "name": "/" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value / b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "/" } }
2 body NumberLiteral { "value": 0 }id Identifier { "name": "/" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value / b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "/" } }
3 body NumberLiteral { "value": 0 }id Identifier { "name": "/" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value / b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "/" } }
resolved type
resolved type
|
name nodes 0 constant id Identifier { "name": ; "/" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "/" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value / b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "/" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value / b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}
1 body NumberLiteral { "value": 0 }id Identifier { "name": "/" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value / b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "/" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value / b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
2 body NumberLiteral { "value": 0 }id Identifier { "name": "/" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value / b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "/" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value / b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
3 body NumberLiteral { "value": 0 }id Identifier { "name": "/" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value / b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "/" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value / b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "/" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "/" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "/" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "/" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "/" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "/" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "/" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "/" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "/" } }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "/" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "/" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": UnionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"maxExclusive": true,
"max": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
},
"right": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"minExclusive": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"integer": true
}
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "/" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "/" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "/" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "/" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "/" } },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "/" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value / b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "/" } }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
abs
|
@Native("(a) => ({ ...a, value: ; Math.abs(a.value) })")
abs = (a: Integer) => 0
@Native("(a, b) => ({ ...a, value: ; Math.abs(a.value) })")
abs = (a: Float) => 0
|
" @Native(\"(a) => ({ ...a, value: Math.abs(a.value) })\") abs = (a: Integer) => 0
@Native(\"(a, b) => ({ ...a, value: Math.abs(a.value) })\") abs = (a: Float) => 0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a) => ({ ...a, value: Math.abs(a.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "abs" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: Math.abs(a.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "abs" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a) => ({ ...a, value: Math.abs(a.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "abs" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: Math.abs(a.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "abs" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "abs",
"nodes": [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: Math.abs(a.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "abs" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: Math.abs(a.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "abs" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: Math.abs(a.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "abs" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: Math.abs(a.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "abs" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
|
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: Math.abs(a.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "abs" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: Math.abs(a.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "abs" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
|
name nodes 0 args StringLiteral { "value": "(a) => ({ ...a, value: Math.abs(a.value) ; })" }callee nodes [
StringLiteral { "value": "(a) => ({ ...a, value: Math.abs(a.value) })" ; }
]
1 constant id Identifier { "name": "abs" }left Identifier { "name": "abs" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
2 args StringLiteral { "value": "(a, b) => ({ ...a, value: Math.abs(a.value) ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.abs(a.value) })" ; }
]
3 constant id Identifier { "name": "abs" }left Identifier { "name": "abs" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
|
name nodes [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.abs(a.value) })" ; }
]
},
Variable { "id": Identifier { "name": ; "abs" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.abs(a.value) })" ; }
]
},
Variable { "id": Identifier { "name": ; "abs" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}
]
|
name nodes 0 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "abs" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.abs(a.value) })" ; }
]
}
]nodes [
StringLiteral { "value": "(a) => ({ ...a, value: Math.abs(a.value) })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "abs" }
}
1 constant id Identifier { "name": "abs" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.abs(a.value) })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": "abs" }parameters 0 id Identifier { "name": "a" }type
2 Call {
"callee": TypeReference { "name": "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.abs(a.value) })" ; }
]
}3 Variable { "id": Identifier { "name": ; "abs" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; "abs" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.abs(a.value) })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "abs" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.abs(a.value) })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
}
]
1 constant id Identifier { "name": ; "abs" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.abs(a.value) })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "abs" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.abs(a.value) })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
]
|
name nodes 0 constant id Identifier { "name": ; "abs" }value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "abs" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.abs(a.value) })" ; }
]
}
]nodes [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.abs(a.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "abs" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.abs(a.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "abs" } ; }
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
}
]
1 Variable { "id": Identifier { "name": ; "abs" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.abs(a.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "abs" } ; },
"constant": true
}
|
resolveExternalReferences
dependencies [
"@Native",
"Integer",
"Float"
] name nodes 0 constant id Identifier { "name": ; "abs" }value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "abs" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.abs(a.value) })" ; }
]
}
]parameters 0 id Identifier { "name": ; "a" }type
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "abs" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.abs(a.value) })" ; }
]
}
]parameters 0 id Identifier { "name": ; "a" }type
|
dependencies [
"@Native",
"Integer",
"Float"
] name nodes [
Variable { "id": Identifier { "name": ; "abs" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.abs(a.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "abs" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.abs(a.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "abs" } ; }
]
},
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "abs" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.abs(a.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "abs" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.abs(a.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "abs" } ; }
]
},
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": "abs" }resolved type value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "abs" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a) => ({ ...a, value: Math.abs(a.value) })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a) => ({ ...a, value: Math.abs(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"integer": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 0 }
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "abs" ; } }
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "abs" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: Math.abs(a.value) })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.abs(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"integer": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 0 }
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "abs" }
}
resolved type
resolved type
|
name nodes 0 constant id Identifier { "name": ; "abs" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "abs" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a) => ({ ...a, value: Math.abs(a.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "abs" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a) => ({ ...a, value: Math.abs(a.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved returnType integer max NumberLiteral { "integer": true, ; "value": 0 }min NumberLiteral { "integer": true, ; "value": 0 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "abs" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: Math.abs(a.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "abs" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: Math.abs(a.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved returnType integer max NumberLiteral { "integer": true, ; "value": 0 }min NumberLiteral { "integer": true, ; "value": 0 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "abs" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.abs(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 0 }
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "abs" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.abs(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "abs" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.abs(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 0 }
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "abs" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.abs(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "abs" } ; }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "abs" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.abs(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 0 }
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "abs" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.abs(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "abs" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.abs(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 0 }
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "abs" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.abs(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "abs" } ; }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
cos
|
@Native("(a) => ({ ...a, value: ; Math.cos(a.value) })")
cos = (a: Float): 0.0 .. 1.0 => 0.0
|
" @Native(\"(a) => ({ ...a, value: ; Math.cos(a.value) })\") cos = (a: Float): 0.0 .. 1.0 => 0.0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a) => ({ ...a, value: Math.cos(a.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "cos" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": ".." },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "1.0" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a) => ({ ...a, value: Math.cos(a.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "cos" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": ".." },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "1.0" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "cos",
"nodes": [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: Math.cos(a.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "cos" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": BinaryExpression { "left": NumberLiteral { "value": ; 0 },
"operator": Token { "type": "Operator", ; "source": ".." },
"right": NumberLiteral { "value": 1 } ; } },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: Math.cos(a.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "cos" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": BinaryExpression { "left": NumberLiteral { "value": ; 0 },
"operator": Token { "type": "Operator", ; "source": ".." },
"right": NumberLiteral { "value": 1 } ; } },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
|
name nodes 0 Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: Math.cos(a.value) })" ; } }1 left Identifier { "name": ; "cos" }operator Token { "type": "Operator", ; "source": "=" }right left left Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
}operator Token { "type": "Operator", ; "source": ":" }right left NumberLiteral { "value": 0 }max NumberLiteral { "value": 1 }min NumberLiteral { "value": 0 }operator Token { "type": "Operator", ; "source": ".." }right NumberLiteral { "value": ; 1 }
operator Token { "type": "Operator", ; "source": "=>" }right NumberLiteral { "value": ; 0 }
|
name nodes 0 args StringLiteral { "value": "(a) => ({ ...a, value: Math.cos(a.value) ; })" }callee nodes [
StringLiteral { "value": "(a) => ({ ...a, value: Math.cos(a.value) })" ; }
]
1 constant id Identifier { "name": "cos" }left Identifier { "name": "cos" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 }
}
},
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 }
},
"body": NumberLiteral { "value": 0 ; } }
|
name nodes [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.cos(a.value) })" ; }
]
},
Variable { "id": Identifier { "name": ; "cos" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 }
},
"body": NumberLiteral { "value": 0 } ; },
"constant": true
}
]
|
name nodes 0 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "cos" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.cos(a.value) })" ; }
]
}
]nodes [
StringLiteral { "value": "(a) => ({ ...a, value: Math.cos(a.value) })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 }
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "cos" } }
1 Variable { "id": Identifier { "name": ; "cos" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 }
},
"body": NumberLiteral { "value": 0 } ; },
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; "cos" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.cos(a.value) })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "cos" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.cos(a.value) })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
]returnType NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 }
}
|
name nodes [
Variable { "id": Identifier { "name": ; "cos" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.cos(a.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 }
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "cos" } },
"constant": true
}
]
|
resolveExternalReferences
dependencies name nodes 0 constant id Identifier { "name": "cos" }value body NumberLiteral { "value": 0 }id Identifier { "name": "cos" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.cos(a.value) })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
returnType NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 ; } }
|
dependencies name nodes [
Variable { "id": Identifier { "name": ; "cos" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.cos(a.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
}
],
"returnType": NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 }
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "cos" } },
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "cos" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.cos(a.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
}
],
"returnType": NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 }
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "cos" } },
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": ; "cos" }resolved type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a) => ({ ...a, value: Math.cos(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } },
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "cos" } }value body NumberLiteral { "value": 0 }id Identifier { "name": "cos" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a) => ({ ...a, value: Math.cos(a.value) })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType max NumberLiteral { "value": 1 }min NumberLiteral { "value": 0 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a) => ({ ...a, value: Math.cos(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } },
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "cos" } }
resolved type
|
name nodes 0 constant id Identifier { "name": "cos" }resolved type body NumberLiteral { "value": 0 }id Identifier { "name": "cos" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a) => ({ ...a, value: Math.cos(a.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } }
value body NumberLiteral { "value": 0 }id Identifier { "name": "cos" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a) => ({ ...a, value: Math.cos(a.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } }type body NumberLiteral { "value": 0 }id Identifier { "name": "cos" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a) => ({ ...a, value: Math.cos(a.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } }
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.cos(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } },
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "cos" } },
"resolved": true,
"id": Identifier { "name": ; "cos" },
"value": Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.cos(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } },
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "cos" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.cos(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } },
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "cos" } },
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.cos(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } },
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "cos" } },
"resolved": true,
"id": Identifier { "name": ; "cos" },
"value": Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.cos(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } },
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "cos" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.cos(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } },
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "cos" } },
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
false
|
false = 0
|
[
Token { "type": "Id", ; "source": "false" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" }
]
|
[
Token { "type": "Id", ; "source": "false" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" }
]Module {
"name": "false",
"nodes": [
BinaryExpression { "left": Identifier { "name": ; "false" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
BinaryExpression { "left": Identifier { "name": ; "false" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
]
|
name nodes [
BinaryExpression { "left": Identifier { "name": ; "false" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
]
|
name nodes 0 constant id Identifier { "name": "false" }left Identifier { "name": "false" }operator Token { "type": "Operator", ; "source": "=" }right NumberLiteral { "integer": true, ; "value": 0 }value NumberLiteral { "integer": true, ; "value": 0 }
|
name nodes [
Variable { "id": Identifier { "name": ; "false" },
"value": NumberLiteral { "integer": true, ; "value": 0 },
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "false" },
"value": NumberLiteral { "integer": true, ; "value": 0 },
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "false" },
"value": NumberLiteral { "integer": true, ; "value": 0 },
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "false" },
"value": NumberLiteral { "integer": true, ; "value": 0 },
"constant": true
}
]
|
resolveExternalReferences
dependencies name nodes [
Variable { "id": Identifier { "name": ; "false" },
"value": NumberLiteral { "integer": true, ; "value": 0 },
"constant": true
}
]
|
dependencies name nodes [
Variable { "id": Identifier { "name": ; "false" },
"value": NumberLiteral { "integer": true, ; "value": 0 },
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "false" },
"value": NumberLiteral { "integer": true, ; "value": 0 },
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": ; "false" }resolved type NumberType {
"integer": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 0 }
}value NumberLiteral { "integer": true, ; "value": 0 }
resolved type
|
name nodes 0 constant id Identifier { "name": ; "false" }resolved type integer max NumberLiteral { "integer": true, ; "value": 0 }min NumberLiteral { "integer": true, ; "value": 0 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value NumberLiteral { "integer": true, ; "value": 0 }
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 0 }
},
"resolved": true,
"id": Identifier { "name": ; "false" },
"value": NumberLiteral { "integer": true, ; "value": 0 },
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 0 }
},
"resolved": true,
"id": Identifier { "name": ; "false" },
"value": NumberLiteral { "integer": true, ; "value": 0 },
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
max
|
@Native("(a, b) => ({ ...a, value: Math.max(a.value, ; b.value) })")
max = (a: Integer, b: Integer) => 0
@Native("(a, b) => ({ ...a, value: Math.max(a.value, ; b.value) })")
max = (a: Float, b: Float) => 0
|
" @Native(\"(a, b) => ({ ...a, value: Math.max(a.value, b.value) })\") max = (a: Integer, b: Integer) => 0
@Native(\"(a, b) => ({ ...a, value: Math.max(a.value, b.value) })\") max = (a: Float, b: Float) => 0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: Math.max(a.value, b.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "max" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: Math.max(a.value, b.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "max" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: Math.max(a.value, b.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "max" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: Math.max(a.value, b.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "max" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "max",
"nodes": [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "max" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "max" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "max" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "max" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
|
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "max" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "max" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
|
name nodes 0 args StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
1 constant id Identifier { "name": "max" }left Identifier { "name": "max" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
2 args StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
3 constant id Identifier { "name": "max" }left Identifier { "name": "max" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
|
name nodes [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
},
Variable { "id": Identifier { "name": ; "max" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
},
Variable { "id": Identifier { "name": ; "max" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}
]
|
name nodes 0 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "max" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "max" }
}
1 constant id Identifier { "name": "max" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": "max" }parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
2 Call {
"callee": TypeReference { "name": "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}3 Variable { "id": Identifier { "name": ; "max" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; "max" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "max" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]
1 constant id Identifier { "name": ; "max" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "max" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]
|
name nodes 0 constant id Identifier { "name": ; "max" }value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "max" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
]nodes [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "max" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "max" } ; }
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]
1 Variable { "id": Identifier { "name": ; "max" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "max" } ; },
"constant": true
}
|
resolveExternalReferences
dependencies [
"@Native",
"Integer",
"Float"
] name nodes 0 constant id Identifier { "name": ; "max" }value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "max" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "max" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
|
dependencies [
"@Native",
"Integer",
"Float"
] name nodes [
Variable { "id": Identifier { "name": ; "max" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "max" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "max" } ; }
]
},
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "max" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "max" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "max" } ; }
]
},
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": "max" }resolved type value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "max" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"integer": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 0 }
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "max" ; } }
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "max" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"integer": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 0 }
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "max" }
}
resolved type
resolved type
|
name nodes 0 constant id Identifier { "name": ; "max" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "max" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "max" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType integer max NumberLiteral { "integer": true, ; "value": 0 }min NumberLiteral { "integer": true, ; "value": 0 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "max" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "max" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType integer max NumberLiteral { "integer": true, ; "value": 0 }min NumberLiteral { "integer": true, ; "value": 0 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "max" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 0 }
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "max" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "max" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 0 }
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "max" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "max" } ; }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "max" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 0 }
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "max" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "max" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 0 }
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "max" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.max(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "max" } ; }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
min
|
@Native("(a, b) => ({ ...a, value: Math.min(a.value, ; b.value) })")
min = (a: Integer, b: Integer): Integer => 0
@Native("(a, b) => ({ ...a, value: Math.min(a.value, ; b.value) })")
min = (a: Float, b: Float): Float => 0.0
|
" @Native(\"(a, b) => ({ ...a, value: Math.min(a.value, b.value) })\") min = (a: Integer, b: Integer): Integer => 0
@Native(\"(a, b) => ({ ...a, value: Math.min(a.value, b.value) })\") min = (a: Float, b: Float): Float => 0.0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: Math.min(a.value, b.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "min" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: Math.min(a.value, b.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "min" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: Math.min(a.value, b.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "min" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: Math.min(a.value, b.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "min" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "min",
"nodes": [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "min" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "min" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "min" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "min" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
|
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "min" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
},
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "min" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
|
name nodes 0 args StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
1 constant id Identifier { "name": "min" }left Identifier { "name": "min" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
2 args StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
3 constant id Identifier { "name": "min" }left Identifier { "name": "min" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
|
name nodes [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
},
Variable { "id": Identifier { "name": ; "min" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
},
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
},
Variable { "id": Identifier { "name": ; "min" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}
]
|
name nodes 0 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "min" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "min" }
}
1 constant id Identifier { "name": "min" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
]value body id Identifier { "name": "min" }parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
2 Call {
"callee": TypeReference { "name": "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}3 Variable { "id": Identifier { "name": ; "min" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; "min" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "min" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Integer" }
1 constant id Identifier { "name": "min" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "min" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": ; "Float" }
|
name nodes 0 constant id Identifier { "name": ; "min" }value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "min" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
]nodes [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "min" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "min" } ; }
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": "Integer" }
1 Variable {
"id": Identifier { "name": "min" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "min" } ; },
"constant": true
}
|
resolveExternalReferences
dependencies [
"@Native",
"Integer",
"Float"
] name nodes 0 constant id Identifier { "name": ; "min" }value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "min" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
1 body NumberLiteral { "value": 0 }id Identifier { "name": "min" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
|
dependencies [
"@Native",
"Integer",
"Float"
] name nodes [
Variable { "id": Identifier { "name": ; "min" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "min" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "min" } ; }
]
},
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "min" },
"value": MultiFunction {
"nodes": [
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "min" } ; },
Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
},
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "b" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "min" } ; }
]
},
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": "min" }resolved type value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "min" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "min" }
}
1 body NumberLiteral { "value": 0 }id Identifier { "name": "min" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "min" } }
resolved type
resolved type
|
name nodes 0 constant id Identifier { "name": ; "min" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value nodes 0 body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "min" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "min" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}
1 body NumberLiteral { "value": 0 }id Identifier { "name": "min" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "min" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "min" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "min" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "min" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "min" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "min" } }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": ; "min" },
"value": MultiFunction {
"type": AnyType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"nodes": [
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "min" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "min" } ; },
Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "min" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: Math.min(a.value, b.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "min" } }
]
},
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
sample.one
|
// x : 2.0 .. 50.0 = 10
// y : 1.0 .. 4.0 = 2
// z = abs( - 20 )
// z2 = - x
// z3 = x / y
// z4 = x % y
// z5 = sqrt(x)
// z6 = sin(12.5)
// z7 = cos(36.8)
// z8 = tan(28.3)
// array = [1, 2, 3]
// length = array.length
// index = 11
// safeIndex = index % array.length
// pair = Pair(1, 10)
class Alpha
a: 0 .. 10
class Beta
b: 1 .. 20
A = Alpha
B = Beta
class Delta extends A, B
c: Delta
foo: Alpha & Beta = c
d = foo.a
// x: < 0
// x *= 10
// class Vector extends Structure
// x: Float
// y: Float
// test = (x: Float, y: Float) =>
// z: Float = x
// if x > y
// z += 10
// else
// z += 10
// CustomArrayType = [ 0 .. 10 : String, 11 .. 20: Number ]
// MapType = { Number: String, String: ; Number }
|
"// x : 2.0 .. 50.0 = 10 // y : 1.0 .. 4.0 = 2 // z = abs( - 20 ) // z2 = - x // z3 = x / y // z4 = x % y // z5 = sqrt(x) // z6 = sin(12.5) // z7 = cos(36.8) // z8 = tan(28.3)
// array = [1, 2, 3] // length = array.length
// index = 11 // safeIndex = index % array.length // pair = Pair(1, 10)
class Alpha a: 0 .. 10 class Beta b: 1 .. 20 A = Alpha B = Beta class Delta extends A, B c: Delta
foo: Alpha & Beta = c
d = foo.a
// x: < 0 // x *= 10
// class Vector extends Structure // x: Float // y: Float
// test = (x: Float, y: Float) => // z: Float = x // if x > y // z += 10 // else // z += 10
// CustomArrayType = [ 0 .. 10 : String, 11 .. 20: Number ] // MapType = { Number: String, String: ; Number } " [
Token {
"type": "Comment",
"source": "// x : 2.0 .. 50.0 = 10"
},
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// y : 1.0 .. 4.0 = 2" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z = abs( - 20 )" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z2 = - x" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z3 = x / y" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z4 = x % y" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z5 = sqrt(x)" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z6 = sin(12.5)" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z7 = cos(36.8)" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z8 = tan(28.3)" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// array = [1, 2, 3]" },
Token { "type": "Eol", ; "source": " " },
Token {
"type": "Comment",
"source": "// length = array.length"
},
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// index = 11" },
Token { "type": "Eol", ; "source": " " },
Token {
"type": "Comment",
"source": "// safeIndex = index % array.length"
},
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// pair = Pair(1, 10)" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Alpha" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Indent", ; "source": " " },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": ".." },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "10" },
Token { "type": ; "Outdent" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Beta" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Indent", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "1" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": ".." },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "20" },
Token { "type": ; "Outdent" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "A" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Alpha" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "B" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Beta" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Delta" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Extends", ; "source": "extends" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "A" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "B" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "c" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Delta" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "foo" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Alpha" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "&" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Beta" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "c" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "d" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "foo" },
Token { "type": "Operator", ; "source": "." },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// x: < 0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// x *= 10" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token {
"type": "Comment",
"source": "// class Vector extends Structure"
},
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// x: Float" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// y: Float" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token {
"type": "Comment",
"source": "// test = (x: Float, y: Float) =>"
},
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z: Float = x" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// if x > y" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z += 10" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// else" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z += 10" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token {
"type": "Comment",
"source": "// CustomArrayType = [ 0 .. 10 : String, 11 .. 20: Number ]"
},
Token { "type": "Eol", ; "source": " " },
Token {
"type": "Comment",
"source": "// MapType = { Number: String, String: Number }" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token {
"type": "Comment",
"source": "// x : 2.0 .. 50.0 = 10"
},
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// y : 1.0 .. 4.0 = 2" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z = abs( - 20 )" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z2 = - x" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z3 = x / y" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z4 = x % y" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z5 = sqrt(x)" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z6 = sin(12.5)" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z7 = cos(36.8)" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z8 = tan(28.3)" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// array = [1, 2, 3]" },
Token { "type": "Eol", ; "source": " " },
Token {
"type": "Comment",
"source": "// length = array.length"
},
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// index = 11" },
Token { "type": "Eol", ; "source": " " },
Token {
"type": "Comment",
"source": "// safeIndex = index % array.length"
},
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// pair = Pair(1, 10)" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Alpha" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Indent", ; "source": " " },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": ".." },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "10" },
Token { "type": ; "Outdent" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Beta" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Indent", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "1" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": ".." },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "20" },
Token { "type": ; "Outdent" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "A" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Alpha" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "B" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Beta" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Delta" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Extends", ; "source": "extends" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "A" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "B" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "c" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Delta" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "foo" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Alpha" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "&" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Beta" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "c" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "d" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "foo" },
Token { "type": "Operator", ; "source": "." },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// x: < 0" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// x *= 10" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token {
"type": "Comment",
"source": "// class Vector extends Structure"
},
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// x: Float" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// y: Float" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token {
"type": "Comment",
"source": "// test = (x: Float, y: Float) =>"
},
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z: Float = x" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// if x > y" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z += 10" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// else" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Comment", ; "source": "// z += 10" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Eol", ; "source": " " },
Token {
"type": "Comment",
"source": "// CustomArrayType = [ 0 .. 10 : String, 11 .. 20: Number ]"
},
Token { "type": "Eol", ; "source": " " },
Token {
"type": "Comment",
"source": "// MapType = { Number: String, String: Number }" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "sample.one",
"nodes": [
Variable { "constant": true, ; "id": Identifier { "name": "Alpha" },
"value": PstClass { "id": Identifier { "name": ; "Alpha" },
"constant": true,
"nodes": [
BinaryExpression { "left": Identifier { "name": ; "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": BinaryExpression {
"left": NumberLiteral { "integer": true, ; "value": 0 },
"operator": Token { "type": "Operator", ; "source": ".." },
"right": NumberLiteral { "integer": true, ; "value": 10 }
}
}
]
}
},
Variable { "constant": true, ; "id": Identifier { "name": "Beta" },
"value": PstClass { "id": Identifier { "name": ; "Beta" },
"constant": true,
"nodes": [
BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": BinaryExpression {
"left": NumberLiteral { "integer": true, ; "value": 1 },
"operator": Token { "type": "Operator", ; "source": ".." },
"right": NumberLiteral { "integer": true, ; "value": 20 }
}
}
]
}
},
BinaryExpression { "left": Identifier { "name": ; "A" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": Identifier { "name": "Alpha" } ; },
BinaryExpression { "left": Identifier { "name": ; "B" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": Identifier { "name": "Beta" } ; },
Variable { "constant": true, ; "id": Identifier { "name": "Delta" },
"value": PstClass { "id": Identifier { "name": ; "Delta" },
"constant": true,
"extends": BinaryExpression { "left": Identifier { "name": ; "A" },
"operator": Token { "type": "Operator", ; "source": "," },
"right": Identifier { "name": "B" } ; } }
},
BinaryExpression { "left": Identifier { "name": ; "c" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Delta" } ; },
BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "foo" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": BinaryExpression { "left": Identifier { "name": ; "Alpha" },
"operator": Token { "type": "Operator", ; "source": "&" },
"right": Identifier { "name": "Beta" } ; } },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": Identifier { "name": "c" } ; },
BinaryExpression { "left": Identifier { "name": ; "d" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression { "left": Identifier { "name": ; "foo" },
"operator": Token { "type": "Operator", ; "source": "." },
"right": Identifier { "name": "a" } ; } }
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Alpha" },
"value": PstClass { "id": Identifier { "name": ; "Alpha" },
"constant": true,
"nodes": [
BinaryExpression { "left": Identifier { "name": ; "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": BinaryExpression {
"left": NumberLiteral { "integer": true, ; "value": 0 },
"operator": Token { "type": "Operator", ; "source": ".." },
"right": NumberLiteral { "integer": true, ; "value": 10 }
}
}
]
}
},
Variable { "constant": true, ; "id": Identifier { "name": "Beta" },
"value": PstClass { "id": Identifier { "name": ; "Beta" },
"constant": true,
"nodes": [
BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": BinaryExpression {
"left": NumberLiteral { "integer": true, ; "value": 1 },
"operator": Token { "type": "Operator", ; "source": ".." },
"right": NumberLiteral { "integer": true, ; "value": 20 }
}
}
]
}
},
BinaryExpression { "left": Identifier { "name": ; "A" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": Identifier { "name": "Alpha" } ; },
BinaryExpression { "left": Identifier { "name": ; "B" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": Identifier { "name": "Beta" } ; },
Variable { "constant": true, ; "id": Identifier { "name": "Delta" },
"value": PstClass { "id": Identifier { "name": ; "Delta" },
"constant": true,
"extends": BinaryExpression { "left": Identifier { "name": ; "A" },
"operator": Token { "type": "Operator", ; "source": "," },
"right": Identifier { "name": "B" } ; } }
},
BinaryExpression { "left": Identifier { "name": ; "c" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Delta" } ; },
BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "foo" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": BinaryExpression { "left": Identifier { "name": ; "Alpha" },
"operator": Token { "type": "Operator", ; "source": "&" },
"right": Identifier { "name": "Beta" } ; } },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": Identifier { "name": "c" } ; },
BinaryExpression { "left": Identifier { "name": ; "d" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression { "left": Identifier { "name": ; "foo" },
"operator": Token { "type": "Operator", ; "source": "." },
"right": Identifier { "name": "a" } ; } }
]
|
name nodes 0 constant id Identifier { "name": "Alpha" }value constant id Identifier { "name": "Alpha" }nodes 0 left Identifier { "name": "a" }operator Token { "type": "Operator", ; "source": ":" }right integer left NumberLiteral { "integer": true, ; "value": 0 }max NumberLiteral { "integer": true, ; "value": 10 }min NumberLiteral { "integer": true, ; "value": 0 }operator Token { "type": "Operator", ; "source": ".." }right NumberLiteral { "integer": true, ; "value": 10 }
1 constant id Identifier { "name": "Beta" }value constant id Identifier { "name": "Beta" }nodes 0 left Identifier { "name": "b" }operator Token { "type": "Operator", ; "source": ":" }right integer left NumberLiteral { "integer": true, ; "value": 1 }max NumberLiteral { "integer": true, ; "value": 20 }min NumberLiteral { "integer": true, ; "value": 1 }operator Token { "type": "Operator", ; "source": ".." }right NumberLiteral { "integer": true, ; "value": 20 }
2 BinaryExpression { "left": Identifier { "name": ; "A" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": Identifier { "name": "Alpha" ; } }3 BinaryExpression { "left": Identifier { "name": ; "B" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": Identifier { "name": "Beta" ; } }4 Variable { "constant": true, ; "id": Identifier { "name": "Delta" },
"value": PstClass { "id": Identifier { "name": ; "Delta" },
"constant": true,
"extends": BinaryExpression { "left": Identifier { "name": ; "A" },
"operator": Token { "type": "Operator", ; "source": "," },
"right": Identifier { "name": "B" } ; } }
}5 BinaryExpression { "left": Identifier { "name": ; "c" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Delta" }
}6 left left Identifier { "name": "foo" }operator Token { "type": "Operator", ; "source": ":" }right left Identifier { "name": ; "Alpha" }operator Token { "type": "Operator", ; "source": "&" }right Identifier { "name": ; "Beta" }
operator Token { "type": "Operator", ; "source": "=" }right Identifier { "name": "c" }
7 BinaryExpression {
"left": Identifier { "name": "d" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression { "left": Identifier { "name": ; "foo" },
"operator": Token { "type": "Operator", ; "source": "." },
"right": Identifier { "name": "a" } ; } }
|
name nodes 0 constant id Identifier { "name": "Alpha" }value constant id Identifier { "name": "Alpha" }nodes 0 id Identifier { "name": "a" }left Identifier { "name": "a" }operator Token { "type": "Operator", ; "source": ":" }right NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
}type NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
}
1 constant id Identifier { "name": "Beta" }value constant id Identifier { "name": "Beta" }nodes 0 id Identifier { "name": "b" }left Identifier { "name": "b" }operator Token { "type": "Operator", ; "source": ":" }right NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
}type NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
}
2 constant id Identifier { "name": "A" }left Identifier { "name": "A" }operator Token { "type": "Operator", ; "source": "=" }right Identifier { "name": "Alpha" }value TypeReference { "name": "Alpha" }
3 constant id Identifier { "name": "B" }left Identifier { "name": "B" }operator Token { "type": "Operator", ; "source": "=" }right Identifier { "name": "Beta" }value TypeReference { "name": "Beta" }
4 constant id Identifier { "name": "Delta" }value constant extends BinaryExpression {
"left": Identifier { "name": "A" },
"operator": Token { "type": "Operator", ; "source": "," },
"right": Identifier { "name": "B" ; } }[
TypeReference { "name": "A" }, ; TypeReference { "name": "B" }
]id Identifier { "name": "Delta" }
5 id Identifier { "name": "c" }left Identifier { "name": "c" }operator Token { "type": "Operator", ; "source": ":" }right Identifier { "name": "Delta" }type TypeReference { "name": "Delta" }
6 id Identifier { "name": "foo" }left BinaryExpression {
"left": Identifier { "name": "foo" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": IntersectionType {
"left": Identifier { "name": "Alpha" },
"right": Identifier { "name": "Beta" }
}
}operator Token { "type": "Operator", ; "source": "=" }right Identifier { "name": "c" }type IntersectionType {
"left": TypeReference { "name": "Alpha" },
"right": TypeReference { "name": "Beta" }
}value Reference { "name": "c" }
7 constant id Identifier { "name": "d" }left Identifier { "name": "d" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression { "left": Identifier { "name": ; "foo" },
"operator": Token { "type": "Operator", ; "source": "." },
"right": Identifier { "name": "a" ; } }value Member {
"object": Reference { "name": "foo" },
"property": Identifier { "name": "a" }
}
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Alpha" },
"value": Class { "id": Identifier { "name": ; "Alpha" },
"nodes": [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"id": Identifier { "name": "a" } ; }
]
}
},
Variable { "constant": true, ; "id": Identifier { "name": "Beta" },
"value": Class { "id": Identifier { "name": ; "Beta" },
"nodes": [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"id": Identifier { "name": "b" } ; }
]
}
},
Variable {
"id": Identifier { "name": "A" },
"value": TypeReference { "name": "Alpha" },
"constant": true
},
Variable {
"id": Identifier { "name": "B" },
"value": TypeReference { "name": "Beta" },
"constant": true
},
Variable { "constant": true, ; "id": Identifier { "name": "Delta" },
"value": Class { "id": Identifier { "name": ; "Delta" },
"extends": [
TypeReference { "name": "A" }, ; TypeReference { "name": "B" }
]
}
},
Variable {
"type": TypeReference { "name": "Delta" },
"id": Identifier { "name": "c" }
},
Variable {
"type": IntersectionType {
"left": TypeReference { "name": "Alpha" },
"right": TypeReference { "name": "Beta" } ; },
"id": Identifier { "name": "foo" },
"value": Reference { "name": "c" }
},
Variable { "id": Identifier { "name": ; "d" },
"value": Member {
"object": Reference { "name": "foo" },
"property": Identifier { "name": "a" }
},
"constant": true
}
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Alpha" },
"value": Class { "id": Identifier { "name": ; "Alpha" },
"nodes": [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"id": Identifier { "name": "a" } ; }
]
}
},
Variable { "constant": true, ; "id": Identifier { "name": "Beta" },
"value": Class { "id": Identifier { "name": ; "Beta" },
"nodes": [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"id": Identifier { "name": "b" } ; }
]
}
},
Variable {
"id": Identifier { "name": "A" },
"value": TypeReference { "name": "Alpha" },
"constant": true
},
Variable {
"id": Identifier { "name": "B" },
"value": TypeReference { "name": "Beta" },
"constant": true
},
Variable { "constant": true, ; "id": Identifier { "name": "Delta" },
"value": Class { "id": Identifier { "name": ; "Delta" },
"extends": [
TypeReference { "name": "A" }, ; TypeReference { "name": "B" }
]
}
},
Variable {
"type": TypeReference { "name": "Delta" },
"id": Identifier { "name": "c" }
},
Variable {
"type": IntersectionType {
"left": TypeReference { "name": "Alpha" },
"right": TypeReference { "name": "Beta" } ; },
"id": Identifier { "name": "foo" },
"value": Reference { "name": "c" }
},
Variable { "id": Identifier { "name": ; "d" },
"value": Member {
"object": Reference { "name": "foo" },
"property": Identifier { "name": "a" }
},
"constant": true
}
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Alpha" },
"value": Class { "id": Identifier { "name": ; "Alpha" },
"nodes": [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"id": Identifier { "name": "a" } ; }
]
}
},
Variable { "constant": true, ; "id": Identifier { "name": "Beta" },
"value": Class { "id": Identifier { "name": ; "Beta" },
"nodes": [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"id": Identifier { "name": "b" } ; }
]
}
},
Variable {
"id": Identifier { "name": "A" },
"value": TypeReference { "name": "Alpha" },
"constant": true
},
Variable {
"id": Identifier { "name": "B" },
"value": TypeReference { "name": "Beta" },
"constant": true
},
Variable { "constant": true, ; "id": Identifier { "name": "Delta" },
"value": Class { "id": Identifier { "name": ; "Delta" },
"extends": [
TypeReference { "name": "A" }, ; TypeReference { "name": "B" }
]
}
},
Variable {
"type": TypeReference { "name": "Delta" },
"id": Identifier { "name": "c" }
},
Variable {
"type": IntersectionType {
"left": TypeReference { "name": "Alpha" },
"right": TypeReference { "name": "Beta" } ; },
"id": Identifier { "name": "foo" },
"value": Reference { "name": "c" }
},
Variable { "id": Identifier { "name": ; "d" },
"value": Member {
"object": Reference { "name": "foo" },
"property": Identifier { "name": "a" }
},
"constant": true
}
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Alpha" },
"value": Class { "id": Identifier { "name": ; "Alpha" },
"nodes": [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"id": Identifier { "name": "a" } ; }
]
}
},
Variable { "constant": true, ; "id": Identifier { "name": "Beta" },
"value": Class { "id": Identifier { "name": ; "Beta" },
"nodes": [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"id": Identifier { "name": "b" } ; }
]
}
},
Variable {
"id": Identifier { "name": "A" },
"value": TypeReference { "name": "Alpha" },
"constant": true
},
Variable {
"id": Identifier { "name": "B" },
"value": TypeReference { "name": "Beta" },
"constant": true
},
Variable { "constant": true, ; "id": Identifier { "name": "Delta" },
"value": Class { "id": Identifier { "name": ; "Delta" },
"extends": [
TypeReference { "name": "A" }, ; TypeReference { "name": "B" }
]
}
},
Variable {
"type": TypeReference { "name": "Delta" },
"id": Identifier { "name": "c" }
},
Variable {
"type": IntersectionType {
"left": TypeReference { "name": "Alpha" },
"right": TypeReference { "name": "Beta" } ; },
"id": Identifier { "name": "foo" },
"value": Reference { "name": "c" }
},
Variable { "id": Identifier { "name": ; "d" },
"value": Member {
"object": Reference { "name": "foo" },
"property": Identifier { "name": "a" }
},
"constant": true
}
]
|
resolveExternalReferences
dependencies name nodes 0 constant id value id nodes [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"id": Identifier { "name": "a" } ; }
]
1 constant id value id nodes [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"id": Identifier { "name": "b" } ; }
]
2 3 4 5 6 7 constant id value object property Identifier { "name": ; "a" }
|
dependencies name nodes [
Variable {
"constant": true,
"id": Identifier { "name": "sample.one.Alpha" ; },
"value": Class { "id": Identifier { ; "name": "sample.one.Alpha" },
"nodes": [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"id": Identifier { "name": "a" } ; }
]
}
},
Variable {
"constant": true,
"id": Identifier { "name": "sample.one.Beta" },
"value": Class { "id": Identifier { "name": ; "sample.one.Beta" },
"nodes": [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"id": Identifier { "name": "b" } ; }
]
}
},
Variable { "id": Identifier { "name": ; "sample.one.A" },
"value": TypeReference { "name": "sample.one.Alpha" ; },
"constant": true
},
Variable {
"id": Identifier { "name": "sample.one.B" },
"value": TypeReference { "name": "sample.one.Beta" },
"constant": true
},
Variable {
"constant": true,
"id": Identifier { "name": "sample.one.Delta" ; },
"value": Class { "id": Identifier { ; "name": "sample.one.Delta" },
"extends": [
TypeReference { "name": "sample.one.A" },
TypeReference { "name": "sample.one.B" }
]
}
},
Variable { "type": TypeReference { ; "name": "sample.one.Delta" },
"id": Identifier { "name": "sample.one.c" } ; },
Variable {
"type": IntersectionType { "left": TypeReference { ; "name": "sample.one.Alpha" },
"right": TypeReference { "name": "sample.one.Beta" } ; },
"id": Identifier { "name": "sample.one.foo" },
"value": Reference { "name": "sample.one.c" }
},
Variable { "id": Identifier { "name": ; "sample.one.d" },
"value": Member {
"object": Reference { "name": "sample.one.foo" },
"property": Identifier { "name": "a" }
},
"constant": true
}
]
|
name nodes 0 Variable {
"constant": true,
"id": Identifier { "name": "sample.one.Alpha" ; },
"value": Class { "id": Identifier { ; "name": "sample.one.Alpha" },
"nodes": [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"id": Identifier { "name": "a" } ; }
]
}
}1 Variable {
"constant": true,
"id": Identifier { "name": "sample.one.Beta" },
"value": Class { "id": Identifier { "name": ; "sample.one.Beta" },
"nodes": [
Variable {
"type": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"id": Identifier { "name": "b" } ; }
]
}
}2 Variable { "id": Identifier { "name": ; "sample.one.A" },
"value": TypeReference { "name": "sample.one.Alpha" ; },
"constant": true
}3 Variable {
"id": Identifier { "name": "sample.one.B" },
"value": TypeReference { "name": "sample.one.Beta" },
"constant": true
}4 constant id Identifier { "name": ; "sample.one.Delta" }value extends id Identifier { "name": ; "sample.one.Delta" }
5 Variable { "type": TypeReference { ; "name": "sample.one.Delta" },
"id": Identifier { "name": "sample.one.c" ; } }6 Variable {
"type": IntersectionType { "left": TypeReference { ; "name": "sample.one.Alpha" },
"right": TypeReference { "name": "sample.one.Beta" } ; },
"id": Identifier { "name": "sample.one.foo" },
"value": Reference { "name": "sample.one.c" }
}7 Variable { "id": Identifier { "name": ; "sample.one.d" },
"value": Member {
"object": Reference { "name": "sample.one.foo" },
"property": Identifier { "name": "a" }
},
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; "sample.one.Alpha" }resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
}value id Identifier {
"name": "sample.one.Alpha"
}nodes 0 id Identifier { "name": "a" }resolved type integer max NumberLiteral { "integer": true, ; "value": 10 }min NumberLiteral { "integer": true, ; "value": 0 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
}
1 constant id Identifier { "name": ; "sample.one.Beta" }resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
}value id Identifier { "name": "sample.one.Beta" }nodes 0 id Identifier { "name": "b" }resolved type integer max NumberLiteral { "integer": true, ; "value": 20 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
}
2 Variable { "id": Identifier { "name": ; "sample.one.A" },
"value": TypeReference { "name": "sample.one.Alpha" ; },
"constant": true
}3 Variable {
"id": Identifier { "name": "sample.one.B" },
"value": TypeReference { "name": "sample.one.Beta" },
"constant": true
}4 constant id Identifier { "name": ; "sample.one.Delta" }resolved type FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
}value extends [
TypeReference { "name": "sample.one.Alpha" ; },
TypeReference { "name": ; "sample.one.Beta" }
]id Identifier { "name": ; "sample.one.Delta" }resolved type FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
}
5 id Identifier { "name": "sample.one.c" }resolved type TypeReference {
"name": "sample.one.Delta"
}
6 id Identifier { "name": "sample.one.foo" }type left TypeReference {
"name": "sample.one.Alpha"
}resolved right TypeReference { "name": ; "sample.one.Beta" }type TypeReference { "resolved": true, ; "name": "@Type" }
value Reference { "name": "sample.one.c" }
7 Variable {
"id": Identifier { "name": "sample.one.d" },
"value": Member {
"object": Reference { "name": "sample.one.foo" },
"property": Identifier { "name": "a" }
},
"constant": true
}
|
name nodes 0 Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": "sample.one.Alpha" ; },
"value": Class {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"id": Identifier { "name": "sample.one.Alpha" ; },
"nodes": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]
}
}1 Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "sample.one.Beta" },
"value": Class {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"id": Identifier { "name": ; "sample.one.Beta" },
"nodes": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]
}
}2 constant id Identifier { "name": ; "sample.one.A" }resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
}value name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
}
3 constant id Identifier { "name": ; "sample.one.B" }resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
}value name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
}
4 constant id Identifier { "name": ; "sample.one.Delta" }resolved type FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
}value extends 0 name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
}
1 name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
}
id Identifier { "name": ; "sample.one.Delta" }resolved type FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
}
5 id Identifier { "name": ; "sample.one.c" }resolved type name resolved type FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
}
6 id Identifier { "name": ; "sample.one.foo" }resolved type left name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
}
resolved right name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
}
type TypeReference { "resolved": true, ; "name": "@Type" }
value name resolved type TypeReference { "name": ; "sample.one.Delta" }
7 Variable { "id": Identifier { "name": ; "sample.one.d" },
"value": Member {
"object": Reference { "name": "sample.one.foo" },
"property": Identifier { "name": "a" }
},
"constant": true
}
|
name nodes 0 Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": "sample.one.Alpha" ; },
"value": Class {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"id": Identifier { "name": "sample.one.Alpha" ; },
"nodes": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]
}
}1 Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "sample.one.Beta" },
"value": Class {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"id": Identifier { "name": ; "sample.one.Beta" },
"nodes": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]
}
}2 Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"id": Identifier { "name": ; "sample.one.A" },
"value": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"name": "sample.one.Alpha"
},
"constant": true
}3 Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"id": Identifier { "name": ; "sample.one.B" },
"value": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"name": "sample.one.Beta"
},
"constant": true
}4 Variable {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": "sample.one.Delta" ; },
"value": Class {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
},
"resolved": true,
"id": Identifier { "name": "sample.one.Delta" ; },
"extends": [
TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"name": "sample.one.Alpha"
},
TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"name": "sample.one.Beta"
}
]
}
}5 Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
},
"resolved": true,
"name": "sample.one.Delta"
},
"resolved": true,
"id": Identifier { "name": "sample.one.c" }
}6 id Identifier { "name": "sample.one.foo" }resolved type IntersectionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"name": "sample.one.Alpha"
},
"right": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"name": "sample.one.Beta"
}
}value name resolved type name resolved type FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
}
7 constant id Identifier { "name": ; "sample.one.d" }resolved type NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
}value object name resolved type IntersectionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"name": "sample.one.Alpha"
},
"right": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"name": "sample.one.Beta"
}
}
property Identifier { "name": ; "a" }resolved type NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
}
resolved type
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": "sample.one.Alpha" ; },
"value": Class {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"id": Identifier { "name": "sample.one.Alpha" ; },
"nodes": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]
}
},
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "sample.one.Beta" },
"value": Class {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"id": Identifier { "name": ; "sample.one.Beta" },
"nodes": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]
}
},
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"id": Identifier { "name": ; "sample.one.A" },
"value": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"name": "sample.one.Alpha"
},
"constant": true
},
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"id": Identifier { "name": ; "sample.one.B" },
"value": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"name": "sample.one.Beta"
},
"constant": true
},
Variable {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": "sample.one.Delta" ; },
"value": Class {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
},
"resolved": true,
"id": Identifier { "name": "sample.one.Delta" ; },
"extends": [
TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"name": "sample.one.Alpha"
},
TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"name": "sample.one.Beta"
}
]
}
},
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
},
"resolved": true,
"name": "sample.one.Delta"
},
"resolved": true,
"id": Identifier { "name": "sample.one.c" } ; },
Variable {
"type": IntersectionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"name": "sample.one.Alpha"
},
"right": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"name": "sample.one.Beta"
}
},
"resolved": true,
"id": Identifier { "name": ; "sample.one.foo" },
"value": Reference {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
},
"resolved": true,
"name": "sample.one.Delta"
},
"resolved": true,
"name": "sample.one.c"
}
},
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": ; "sample.one.d" },
"value": Member {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"object": Reference {
"type": IntersectionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"name": "sample.one.Alpha"
},
"right": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"name": "sample.one.Beta"
}
},
"resolved": true,
"name": "sample.one.foo"
},
"property": Identifier { "name": "a" } ; },
"constant": true
}
]resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": "sample.one.Alpha" ; },
"value": Class {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"id": Identifier { "name": "sample.one.Alpha" ; },
"nodes": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]
}
},
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "sample.one.Beta" },
"value": Class {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"id": Identifier { "name": ; "sample.one.Beta" },
"nodes": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]
}
},
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"id": Identifier { "name": ; "sample.one.A" },
"value": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"name": "sample.one.Alpha"
},
"constant": true
},
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"id": Identifier { "name": ; "sample.one.B" },
"value": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"name": "sample.one.Beta"
},
"constant": true
},
Variable {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": "sample.one.Delta" ; },
"value": Class {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
},
"resolved": true,
"id": Identifier { "name": "sample.one.Delta" ; },
"extends": [
TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"name": "sample.one.Alpha"
},
TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"name": "sample.one.Beta"
}
]
}
},
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
},
"resolved": true,
"name": "sample.one.Delta"
},
"resolved": true,
"id": Identifier { "name": "sample.one.c" } ; },
Variable {
"type": IntersectionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"name": "sample.one.Alpha"
},
"right": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"name": "sample.one.Beta"
}
},
"resolved": true,
"id": Identifier { "name": ; "sample.one.foo" },
"value": Reference {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
},
"resolved": true,
"name": "sample.one.Delta"
},
"resolved": true,
"name": "sample.one.c"
}
},
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": ; "sample.one.d" },
"value": Member {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"object": Reference {
"type": IntersectionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"name": "sample.one.Alpha"
},
"right": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"name": "sample.one.Beta"
}
},
"resolved": true,
"name": "sample.one.foo"
},
"property": Identifier { "name": "a" } ; },
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": "sample.one.Alpha" ; },
"value": Class {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"id": Identifier { "name": "sample.one.Alpha" ; },
"nodes": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]
}
},
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "sample.one.Beta" },
"value": Class {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"id": Identifier { "name": ; "sample.one.Beta" },
"nodes": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]
}
},
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"id": Identifier { "name": ; "sample.one.A" },
"value": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"name": "sample.one.Alpha"
},
"constant": true
},
Variable {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"id": Identifier { "name": ; "sample.one.B" },
"value": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"name": "sample.one.Beta"
},
"constant": true
},
Variable {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": "sample.one.Delta" ; },
"value": Class {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
},
"resolved": true,
"id": Identifier { "name": "sample.one.Delta" ; },
"extends": [
TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"name": "sample.one.Alpha"
},
TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"name": "sample.one.Beta"
}
]
}
},
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
},
"resolved": true,
"name": "sample.one.Delta"
},
"resolved": true,
"id": Identifier { "name": "sample.one.c" } ; },
Variable {
"type": IntersectionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"name": "sample.one.Alpha"
},
"right": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"name": "sample.one.Beta"
}
},
"resolved": true,
"id": Identifier { "name": ; "sample.one.foo" },
"value": Reference {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Delta" }
},
"resolved": true,
"name": "sample.one.Delta"
},
"resolved": true,
"name": "sample.one.c"
}
},
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": ; "sample.one.d" },
"value": Member {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"object": Reference {
"type": IntersectionType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"left": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 0 },
"max": NumberLiteral { "integer": true, ; "value": 10 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Alpha" }
},
"resolved": true,
"name": "sample.one.Alpha"
},
"right": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 20 },
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "sample.one.Beta" }
},
"resolved": true,
"name": "sample.one.Beta"
}
},
"resolved": true,
"name": "sample.one.foo"
},
"property": Identifier { "name": "a" } ; },
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
sin
|
@Native("(a) => ({ ...a, value: ; Math.sin(a.value) })")
sin = (a: Float): 0.0 .. 1.0 => 0.0
|
" @Native(\"(a) => ({ ...a, value: ; Math.sin(a.value) })\") sin = (a: Float): 0.0 .. 1.0 => 0.0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a) => ({ ...a, value: Math.sin(a.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "sin" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": ".." },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "1.0" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a) => ({ ...a, value: Math.sin(a.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "sin" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": ".." },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "1.0" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "sin",
"nodes": [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: Math.sin(a.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "sin" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": BinaryExpression { "left": NumberLiteral { "value": ; 0 },
"operator": Token { "type": "Operator", ; "source": ".." },
"right": NumberLiteral { "value": 1 } ; } },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: Math.sin(a.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "sin" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": BinaryExpression { "left": NumberLiteral { "value": ; 0 },
"operator": Token { "type": "Operator", ; "source": ".." },
"right": NumberLiteral { "value": 1 } ; } },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
|
name nodes 0 Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: Math.sin(a.value) })" ; } }1 left Identifier { "name": ; "sin" }operator Token { "type": "Operator", ; "source": "=" }right left left Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
}operator Token { "type": "Operator", ; "source": ":" }right left NumberLiteral { "value": 0 }max NumberLiteral { "value": 1 }min NumberLiteral { "value": 0 }operator Token { "type": "Operator", ; "source": ".." }right NumberLiteral { "value": ; 1 }
operator Token { "type": "Operator", ; "source": "=>" }right NumberLiteral { "value": ; 0 }
|
name nodes 0 args StringLiteral { "value": "(a) => ({ ...a, value: Math.sin(a.value) ; })" }callee nodes [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sin(a.value) })" ; }
]
1 constant id Identifier { "name": "sin" }left Identifier { "name": "sin" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 }
}
},
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 }
},
"body": NumberLiteral { "value": 0 ; } }
|
name nodes [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sin(a.value) })" ; }
]
},
Variable { "id": Identifier { "name": ; "sin" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 }
},
"body": NumberLiteral { "value": 0 } ; },
"constant": true
}
]
|
name nodes 0 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "sin" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sin(a.value) })" ; }
]
}
]nodes [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sin(a.value) })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 }
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sin" } }
1 Variable { "id": Identifier { "name": ; "sin" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 }
},
"body": NumberLiteral { "value": 0 } ; },
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; "sin" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sin(a.value) })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "sin" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sin(a.value) })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
]returnType NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 }
}
|
name nodes [
Variable { "id": Identifier { "name": ; "sin" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sin(a.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 }
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sin" } },
"constant": true
}
]
|
resolveExternalReferences
dependencies name nodes 0 constant id Identifier { "name": "sin" }value body NumberLiteral { "value": 0 }id Identifier { "name": "sin" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sin(a.value) })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
returnType NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 ; } }
|
dependencies name nodes [
Variable { "id": Identifier { "name": ; "sin" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sin(a.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
}
],
"returnType": NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 }
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sin" } },
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "sin" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sin(a.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
}
],
"returnType": NumberType {
"min": NumberLiteral { "value": 0 },
"max": NumberLiteral { "value": 1 }
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sin" } },
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": ; "sin" }resolved type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a) => ({ ...a, value: Math.sin(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } },
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sin" } }value body NumberLiteral { "value": 0 }id Identifier { "name": "sin" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a) => ({ ...a, value: Math.sin(a.value) })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType max NumberLiteral { "value": 1 }min NumberLiteral { "value": 0 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a) => ({ ...a, value: Math.sin(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } },
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sin" } }
resolved type
|
name nodes 0 constant id Identifier { "name": "sin" }resolved type body NumberLiteral { "value": 0 }id Identifier { "name": "sin" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a) => ({ ...a, value: Math.sin(a.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } }
value body NumberLiteral { "value": 0 }id Identifier { "name": "sin" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a) => ({ ...a, value: Math.sin(a.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } }type body NumberLiteral { "value": 0 }id Identifier { "name": "sin" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a) => ({ ...a, value: Math.sin(a.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } }
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.sin(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } },
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sin" } },
"resolved": true,
"id": Identifier { "name": ; "sin" },
"value": Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.sin(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } },
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sin" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.sin(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } },
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sin" } },
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.sin(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } },
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sin" } },
"resolved": true,
"id": Identifier { "name": ; "sin" },
"value": Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.sin(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } },
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sin" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.sin(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 }, ; "max": NumberLiteral { "value": 1 } },
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sin" } },
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
sqrt
|
@Native("(a) => ({ ...a, value: ; Math.sqrt(a.value) })")
sqrt = (a: >= 0.0): Float => 0.0
|
" @Native(\"(a) => ({ ...a, value: ; Math.sqrt(a.value) })\") sqrt = (a: >= 0.0): Float => 0.0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a) => ({ ...a, value: Math.sqrt(a.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "sqrt" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": ">=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a) => ({ ...a, value: Math.sqrt(a.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "sqrt" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": ">=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "sqrt",
"nodes": [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "sqrt" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": UnaryOperation {
"operator": Token { "type": "Operator", ; "source": ">=" },
"value": NumberLiteral { "value": 0 } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "sqrt" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": UnaryOperation {
"operator": Token { "type": "Operator", ; "source": ">=" },
"value": NumberLiteral { "value": 0 } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
|
name nodes 0 Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" ; } }1 left Identifier { "name": ; "sqrt" }operator Token { "type": "Operator", ; "source": "=" }right left left close Token { "type": "CloseParen", ; "source": ")" }open Token { "type": "OpenParen", ; "source": "(" }value left Identifier { "name": ; "a" }operator Token { "type": "Operator", ; "source": ":" }right min NumberLiteral { "value": ; 0 }operator Token { "type": "Operator", ; "source": ">=" }value NumberLiteral { "value": ; 0 }
operator Token { "type": "Operator", ; "source": ":" }right Identifier { "name": ; "Float" }
operator Token { "type": "Operator", ; "source": "=>" }right NumberLiteral { "value": ; 0 }
|
name nodes 0 args StringLiteral { "value": "(a) => ({ ...a, value: Math.sqrt(a.value) ; })" }callee nodes [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" ; }
]
1 constant id Identifier { "name": "sqrt" }left Identifier { "name": "sqrt" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": NumberType { "min": NumberLiteral { "value": 0 } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable { "type": NumberType { ; "min": NumberLiteral { "value": 0 } },
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
|
name nodes [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" ; }
]
},
Variable { "id": Identifier { "name": ; "sqrt" },
"value": Function {
"parameters": [
Variable { "type": NumberType { ; "min": NumberLiteral { "value": 0 } },
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}
]
|
name nodes 0 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "sqrt" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" ; }
]
}
]nodes [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" ; }
]value Function {
"parameters": [
Variable { "type": NumberType { ; "min": NumberLiteral { "value": 0 } },
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "sqrt" ; } }
1 Variable { "id": Identifier { "name": ; "sqrt" },
"value": Function {
"parameters": [
Variable { "type": NumberType { ; "min": NumberLiteral { "value": 0 } },
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; "sqrt" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "sqrt" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" ; }
]
}
]parameters [
Variable { "type": NumberType { ; "min": NumberLiteral { "value": 0 } },
"id": Identifier { "name": "a" } ; }
]returnType TypeReference { "name": ; "Float" }
|
name nodes [
Variable { "id": Identifier { "name": ; "sqrt" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" ; }
]
}
],
"parameters": [
Variable { "type": NumberType { ; "min": NumberLiteral { "value": 0 } },
"id": Identifier { "name": "a" } ; }
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "sqrt" } ; },
"constant": true
}
]
|
resolveExternalReferences
dependencies name nodes 0 constant id Identifier { "name": "sqrt" }value body NumberLiteral { "value": 0 }id Identifier { "name": "sqrt" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" ; }
]
}
]parameters [
Variable { "type": NumberType { ; "min": NumberLiteral { "value": 0 } },
"id": Identifier { "name": "a" } ; }
]returnType
|
dependencies name nodes [
Variable { "id": Identifier { "name": ; "sqrt" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" ; }
]
}
],
"parameters": [
Variable { "type": NumberType { ; "min": NumberLiteral { "value": 0 } },
"id": Identifier { "name": "a" } ; }
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "sqrt" } ; },
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "sqrt" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" ; }
]
}
],
"parameters": [
Variable { "type": NumberType { ; "min": NumberLiteral { "value": 0 } },
"id": Identifier { "name": "a" } ; }
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "sqrt" } ; },
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": ; "sqrt" }resolved type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 } ; },
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sqrt" } }value body NumberLiteral { "value": 0 }id Identifier { "name": "sqrt" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a) => ({ ...a, value: Math.sqrt(a.value) })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": "a" }resolved type min NumberLiteral { "value": 0 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 } ; },
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sqrt" } }
resolved type
|
name nodes 0 constant id Identifier { "name": "sqrt" }resolved type body NumberLiteral { "value": 0 }id Identifier { "name": "sqrt" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a) => ({ ...a, value: Math.sqrt(a.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 } ; },
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
value body NumberLiteral { "value": 0 }id Identifier { "name": "sqrt" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a) => ({ ...a, value: Math.sqrt(a.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 } ; },
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "sqrt" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a) => ({ ...a, value: Math.sqrt(a.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 } ; },
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 } ; },
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sqrt" } },
"resolved": true,
"id": Identifier { "name": ; "sqrt" },
"value": Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 } ; },
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sqrt" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 } ; },
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sqrt" } },
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 } ; },
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sqrt" } },
"resolved": true,
"id": Identifier { "name": ; "sqrt" },
"value": Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 } ; },
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sqrt" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.sqrt(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "value": 0 } ; },
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "sqrt" } },
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
tan
|
@Native("(a) => ({ ...a, value: ; Math.tan(a.value) })")
tan = (a: Float): Float => 0.0
|
" @Native(\"(a) => ({ ...a, value: ; Math.tan(a.value) })\") tan = (a: Float): Float => 0.0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a) => ({ ...a, value: Math.tan(a.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "tan" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a) => ({ ...a, value: Math.tan(a.value) })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "tan" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Float" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Float", ; "source": "0.0" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "tan",
"nodes": [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: Math.tan(a.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "tan" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: Math.tan(a.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "tan" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
|
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a) => ({ ...a, value: Math.tan(a.value) })" ; } },
BinaryExpression { "left": Identifier { "name": ; "tan" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 } ; } }
]
|
name nodes 0 args StringLiteral { "value": "(a) => ({ ...a, value: Math.tan(a.value) ; })" }callee nodes [
StringLiteral { "value": "(a) => ({ ...a, value: Math.tan(a.value) })" ; }
]
1 constant id Identifier { "name": "tan" }left Identifier { "name": "tan" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Float" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "value": 0 ; } }value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
}
|
name nodes [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.tan(a.value) })" ; }
]
},
Variable { "id": Identifier { "name": ; "tan" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}
]
|
name nodes 0 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "tan" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.tan(a.value) })" ; }
]
}
]nodes [
StringLiteral { "value": "(a) => ({ ...a, value: Math.tan(a.value) })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "tan" ; } }
1 Variable { "id": Identifier { "name": ; "tan" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": TypeReference { "name": "Float" },
"body": NumberLiteral { "value": 0 }
},
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; "tan" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.tan(a.value) })" ; }
]
}
]value body NumberLiteral { "value": 0 }id Identifier { "name": "tan" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.tan(a.value) })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
]returnType TypeReference { "name": ; "Float" }
|
name nodes [
Variable { "id": Identifier { "name": ; "tan" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.tan(a.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Float" },
"id": Identifier { "name": "a" }
}
],
"returnType": TypeReference { "name": "Float" }, ; "body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "tan" } ; },
"constant": true
}
]
|
resolveExternalReferences
dependencies name nodes 0 constant id Identifier { "name": "tan" }value body NumberLiteral { "value": 0 }id Identifier { "name": "tan" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.tan(a.value) })" ; }
]
}
]parameters 0 id Identifier { "name": ; "a" }type
returnType
|
dependencies name nodes [
Variable { "id": Identifier { "name": ; "tan" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.tan(a.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "tan" } ; },
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "tan" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a) => ({ ...a, value: Math.tan(a.value) })" ; }
]
}
],
"parameters": [
Variable {
"type": { "": "NumberType" },
"id": Identifier { "name": "a" }
}
],
"returnType": { "": "NumberType" },
"body": NumberLiteral { "value": 0 },
"id": Identifier { "name": "tan" } ; },
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": ; "tan" }resolved type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a) => ({ ...a, value: Math.tan(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "tan" } }value body NumberLiteral { "value": 0 }id Identifier { "name": "tan" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a) => ({ ...a, value: Math.tan(a.value) })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a) => ({ ...a, value: Math.tan(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "tan" } }
resolved type
|
name nodes 0 constant id Identifier { "name": "tan" }resolved type body NumberLiteral { "value": 0 }id Identifier { "name": "tan" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a) => ({ ...a, value: Math.tan(a.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
value body NumberLiteral { "value": 0 }id Identifier { "name": "tan" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a) => ({ ...a, value: Math.tan(a.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}type body NumberLiteral { "value": 0 }id Identifier { "name": "tan" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a) => ({ ...a, value: Math.tan(a.value) })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.tan(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "tan" } },
"resolved": true,
"id": Identifier { "name": ; "tan" },
"value": Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.tan(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "tan" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.tan(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "tan" } },
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.tan(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "tan" } },
"resolved": true,
"id": Identifier { "name": ; "tan" },
"value": Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.tan(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "tan" } },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a) => ({ ...a, value: Math.tan(a.value) })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"body": NumberLiteral { "value": 0 }, ; "id": Identifier { "name": "tan" } },
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
true
|
true = 1
|
[
Token { "type": "Id", ; "source": "true" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "1" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Id", ; "source": "true" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "1" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "true",
"nodes": [
BinaryExpression { "left": Identifier { "name": ; "true" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": NumberLiteral { "integer": true, ; "value": 1 }
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
BinaryExpression { "left": Identifier { "name": ; "true" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": NumberLiteral { "integer": true, ; "value": 1 }
}
]
|
name nodes [
BinaryExpression { "left": Identifier { "name": ; "true" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": NumberLiteral { "integer": true, ; "value": 1 }
}
]
|
name nodes 0 constant id Identifier { "name": "true" }left Identifier { "name": "true" }operator Token { "type": "Operator", ; "source": "=" }right NumberLiteral { "integer": true, ; "value": 1 }value NumberLiteral { "integer": true, ; "value": 1 }
|
name nodes [
Variable { "id": Identifier { "name": ; "true" },
"value": NumberLiteral { "integer": true, ; "value": 1 },
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "true" },
"value": NumberLiteral { "integer": true, ; "value": 1 },
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "true" },
"value": NumberLiteral { "integer": true, ; "value": 1 },
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "true" },
"value": NumberLiteral { "integer": true, ; "value": 1 },
"constant": true
}
]
|
resolveExternalReferences
dependencies name nodes [
Variable { "id": Identifier { "name": ; "true" },
"value": NumberLiteral { "integer": true, ; "value": 1 },
"constant": true
}
]
|
dependencies name nodes [
Variable { "id": Identifier { "name": ; "true" },
"value": NumberLiteral { "integer": true, ; "value": 1 },
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "true" },
"value": NumberLiteral { "integer": true, ; "value": 1 },
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": ; "true" }resolved type NumberType {
"integer": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 }
}value NumberLiteral { "integer": true, ; "value": 1 }
resolved type
|
name nodes 0 constant id Identifier { "name": ; "true" }resolved type integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value NumberLiteral { "integer": true, ; "value": 1 }
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 }
},
"resolved": true,
"id": Identifier { "name": ; "true" },
"value": NumberLiteral { "integer": true, ; "value": 1 },
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 }
},
"resolved": true,
"id": Identifier { "name": ; "true" },
"value": NumberLiteral { "integer": true, ; "value": 1 },
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
|
|
@Native("(a, b) => ({ ...a, value: a.value | ; b.value })")
`|` = (a: Integer, b: Integer): Integer => 0
|
" @Native(\"(a, b) => ({ ...a, value: a.value | ; b.value })\") `|` = (a: Integer, b: Integer): Integer => 0 " [
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value | b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`|`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Id", ; "source": "@Native" },
Token { "type": "OpenParen", ; "source": "(" },
Token {
"type": "String",
"source": "\"(a, b) => ({ ...a, value: a.value | b.value })\""
},
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Eol", ; "source": " " },
Token { "type": "EscapedId", ; "source": "`|`" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "OpenParen", ; "source": "(" },
Token { "type": "Id", ; "source": "a" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Operator", ; "source": "," },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "b" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "CloseParen", ; "source": ")" },
Token { "type": "Operator", ; "source": ":" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Integer" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Operator", ; "source": "=>" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Integer", ; "source": "0" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "|",
"nodes": [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value | b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "|" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value | b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "|" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
|
name nodes [
Call { "callee": Identifier { "name": ; "@Native" },
"args": StringLiteral { "value": "(a, b) => ({ ...a, value: a.value | b.value })" ; } },
BinaryExpression { "left": Identifier { "name": ; "|" },
"operator": Token { "type": "Operator", ; "source": "=" },
"right": BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}
}
]
|
name nodes 0 args StringLiteral { "value": "(a, b) => ({ ...a, value: a.value | b.value ; })" }callee nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value | b.value })" ; }
]
1 constant id Identifier { "name": "|" }left Identifier { "name": "|" }operator Token { "type": "Operator", ; "source": "=" }right BinaryExpression {
"left": BinaryExpression {
"left": Group {
"value": BinaryExpression {
"left": BinaryExpression {
"left": Identifier { "name": "a" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "," },
"right": BinaryExpression { "left": Identifier { "name": ; "b" },
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; } },
"open": Token { "type": "OpenParen", ; "source": "(" },
"close": Token { "type": "CloseParen", ; "source": ")" }
},
"operator": Token { "type": "Operator", ; "source": ":" },
"right": Identifier { "name": "Integer" } ; },
"operator": Token { "type": "Operator", ; "source": "=>" },
"right": NumberLiteral { "integer": true, ; "value": 0 }
}value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
}
|
name nodes [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value | b.value })" ; }
]
},
Variable { "id": Identifier { "name": ; "|" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}
]
|
name nodes 0 callee TypeReference { "name": "@Native" }constant id Identifier { "name": "|" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value | b.value })" ; }
]
}
]nodes [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value | b.value })" ; }
]value Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "|" ; } }
1 Variable { "id": Identifier { "name": ; "|" },
"value": Function {
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 }
},
"constant": true
}
|
name nodes 0 constant id Identifier { "name": ; "|" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value | b.value })" ; }
]
}
]value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "|" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value | b.value })" ; }
]
}
]parameters [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
]returnType TypeReference { "name": ; "Integer" }
|
name nodes [
Variable { "id": Identifier { "name": ; "|" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value | b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "a" }
},
Variable {
"type": TypeReference { "name": "Integer" },
"id": Identifier { "name": "b" }
}
],
"returnType": TypeReference { "name": ; "Integer" },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "|" } ; },
"constant": true
}
]
|
resolveExternalReferences
dependencies name nodes 0 constant id Identifier { "name": ; "|" }value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "|" }meta [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value | b.value })" ; }
]
}
]parameters 0 id Identifier { "name": "a" }type
1 id Identifier { "name": "b" }type
returnType
|
dependencies name nodes [
Variable { "id": Identifier { "name": ; "|" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value | b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "|" } ; },
"constant": true
}
]
|
name nodes [
Variable { "id": Identifier { "name": ; "|" },
"value": Function {
"meta": [
Call { "callee": TypeReference { "name": ; "@Native" },
"nodes": [
StringLiteral { "value": "(a, b) => ({ ...a, value: a.value | b.value })" ; }
]
}
],
"parameters": [
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "a" }
},
Variable {
"type": NumberType { "integer": true },
"id": Identifier { "name": "b" }
}
],
"returnType": NumberType { "integer": ; true },
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "|" } ; },
"constant": true
}
]
|
name nodes 0 constant id Identifier { "name": ; "|" }resolved type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value | b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "|" ; } }value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "|" }meta 0 callee name resolved type FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
}
nodes 0 resolved type value "(a, b) => ({ ...a, value: a.value | b.value })"
resolved type ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
}
parameters 0 id Identifier { "name": ; "a" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 id Identifier { "name": ; "b" }resolved type integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved returnType integer resolved type TypeReference { "resolved": true, ; "name": "@Type" }
type FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair {
"key": Identifier { "name": "javascript" },
"value": { "": "StringType" }
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral { "type": { "": ; "StringType" },
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value | b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "|" }
}
resolved type
|
name nodes 0 constant id Identifier { "name": ; "|" }resolved type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "|" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value | b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}
value body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "|" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value | b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}type body NumberLiteral { "integer": true, ; "value": 0 }id Identifier { "name": ; "|" }meta 0 callee TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
}nodes 0 resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
value "(a, b) => ({ ...a, value: a.value | b.value })"
resolved type properties 0 key Identifier { "name": "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
1 key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
quickLookup @Native key Identifier { "name": ; "@Native" }value integer max NumberLiteral { "integer": true, ; "value": 1 }min NumberLiteral { "integer": true, ; "value": 1 }resolved type TypeReference { "resolved": true, ; "name": "@Type" }
javascript key Identifier { "name": ; "javascript" }value resolved type TypeReference { "resolved": true, ; "name": "@Type" }
resolved type TypeReference { "resolved": true, ; "name": "@Type" }
parameters [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
]resolved returnType NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
}
resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value | b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "|" } ; },
"resolved": true,
"id": Identifier { "name": ; "|" },
"value": Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value | b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "|" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value | b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "|" } ; },
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value | b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "|" } ; },
"resolved": true,
"id": Identifier { "name": ; "|" },
"value": Function {
"type": FunctionType {
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value | b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "|" } ; },
"resolved": true,
"meta": [
Call {
"type": ObjectType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"properties": [
Pair { "key": Identifier { "name": ; "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
],
"quickLookup": Map {
"@Native": Pair {
"key": Identifier { "name": "@Native" },
"value": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"min": NumberLiteral { "integer": true, ; "value": 1 },
"max": NumberLiteral { "integer": true, ; "value": 1 },
"integer": true
}
},
"javascript": Pair { "key": Identifier { "name": ; "javascript" },
"value": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
}
}
},
"resolved": true,
"callee": TypeReference {
"type": FunctionType {
"resolved": true,
"parameters": [
Variable {
"type": TypeReference {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "String" }
},
"resolved": true,
"name": "String"
},
"resolved": true,
"id": Identifier { "name": "javascript" } ; }
],
"returnType": TypeReference { "resolved": true, ; "name": "@Native" }
},
"resolved": true,
"name": "@Native"
},
"nodes": [
StringLiteral {
"type": StringType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
},
"resolved": true,
"value": "(a, b) => ({ ...a, value: a.value | b.value })" } ; ] }
],
"parameters": [
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "a" } ; },
Variable {
"type": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"resolved": true,
"id": Identifier { "name": "b" } ; }
],
"returnType": NumberType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true,
"integer": true
},
"body": NumberLiteral { "integer": true, ; "value": 0 },
"id": Identifier { "name": "|" } ; },
"constant": true
}
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
|
Map
|
class Map
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Map" },
Token { "type": "Eol", ; "source": " " }
]
|
[
Token { "type": "Eol", ; "source": " " },
Token { "type": "Class", ; "source": "class" },
Token { "type": "Whitespace", ; "source": " " },
Token { "type": "Id", ; "source": "Map" },
Token { "type": "Eol", ; "source": " " }
]Module {
"name": "Map",
"nodes": [
Variable { "constant": true, ; "id": Identifier { "name": "Map" },
"value": PstClass { "id": Identifier { "name": "Map" }, ; "constant": true }
}
]
}
|
destructuringAndUnaryNumberLiterals
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Map" },
"value": PstClass { "id": Identifier { "name": "Map" }, ; "constant": true }
}
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Map" },
"value": PstClass { "id": Identifier { "name": "Map" }, ; "constant": true }
}
]
|
name nodes 0 constant id Identifier { "name": "Map" }value constant id Identifier { "name": "Map" }
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Map" },
"value": Class { "id": Identifier { "name": "Map" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Map" },
"value": Class { "id": Identifier { "name": "Map" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Map" },
"value": Class { "id": Identifier { "name": "Map" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Map" },
"value": Class { "id": Identifier { "name": "Map" } ; } }
]
|
resolveExternalReferences
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Map" },
"value": Class { "id": Identifier { "name": "Map" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Map" },
"value": Class { "id": Identifier { "name": "Map" } ; } }
]
|
name nodes [
Variable { "constant": true, ; "id": Identifier { "name": "Map" },
"value": Class { "id": Identifier { "name": "Map" } ; } }
]
|
name nodes 0 constant id Identifier { "name": ; "Map" }resolved type FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Map" }
}value id Identifier { "name": ; "Map" }resolved type FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Map" }
}
resolved type
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Map" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "Map" },
"value": Class {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Map" }
},
"resolved": true,
"id": Identifier { "name": "Map" } ; } }
]resolved type resolved type TypeReference { "resolved": true, ; "name": "@Type" }
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Map" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "Map" },
"value": Class {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Map" }
},
"resolved": true,
"id": Identifier { "name": "Map" } ; } }
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|
name nodes [
Variable {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Map" }
},
"resolved": true,
"constant": true,
"id": Identifier { "name": ; "Map" },
"value": Class {
"type": FunctionType {
"resolved": true,
"returnType": TypeReference { "resolved": true, ; "name": "Map" }
},
"resolved": true,
"id": Identifier { "name": "Map" } ; } }
]resolved type VoidType {
"type": TypeReference { "resolved": true, ; "name": "@Type" },
"resolved": true
}
|